cuốn sách gpt4 ai đã làm

Sức mạnh BigInteger của BigDecimal trong Java

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 20:03:38 25 4
mua khóa gpt4 Nike

Tôi đang cố gắng để có được chỉ số rất lớn gấp đôi Quyền hạn của các giá trị (Java số nguyên lớn có thể chứa nó (số mũ), ví dụ: 10^30)

Đó là, tôi muốn tìm một cái gì đó như 1,75^(10^30) hoặc 1,23^(34234534534222) thứ gì đó. Nếu đầu ra quá lớn, hãy sửa đổi nó thành số nguyên tố như 10^9+7.

nếu tôi muốn tìm số nguyên với sức mạnh, tôi có thể sử dụng BigInteger.modPow() phương pháp sử dụng số nguyên lớntham số:

(BigInteger modPow(số mũ BigInteger, BigInteger m) )

Theo như tôi biết thì đây là những gì tôi nhận được trong Java

new BigDecimal("1.5").pow(1000); // .pow() chỉ có thể lấy số nguyên làm tham số, nhưng tôi muốn chuyển một số lớn như BigInteger 

Tôi không thể làm cho nó hoạt động được trong Java Số thập phân lớn Tìm giá trị tương đương (BigInteger.modPow()) hoặc tôi đã bỏ lỡ nó.

Có cách nào để làm điều này không - tính toán float được nâng lên lũy thừa cao hơn (Decimal)?

Ví dụ đầu vào và đầu ra:

Đầu vào: num//hoặc 1,5 hoặc bất kỳ số thập phân nào. Cũng có thể là số nguyên.

số mũ: exp//Số nguyên lớn hoặc giá trị số nguyên dài

đầu ra: num^exp//num được nâng lên lũy thừa của exp

Chẳng hạn như tính toán 1,23^(34234534534222)

Nếu đầu ra quá lớn, hãy sửa đổi nó bằng cách lấy modulo một số nguyên tố như 10^9+7

câu trả lời hay nhất

有一个Math.BigDecimal triển khai các hàm toán học cốt lõiTrong số đó có:

tĩnh java.math.BigDecimal powRound(java.math.BigDecimal x, java.math.BigInteger n) 
Nâng lên lũy thừa nguyên và làm tròn.

Đây có vẻ là chính xác những gì bạn cần. Thực tế là nó có một thư viện bên ngoài gợi ý java.Math Không có triển khai cốt lõi của một phương thức như thế này trong .

Một lưu ý phụ, tôi có thể nói rằng nếu đầu vào của bạn khá nhỏ về số thập phân (và do đó không phải là vô tỷ) như 1,5, bạn có thể chuyển đổi nó thành 15/10 và thực hiện

(15^BigInteger)/(10^BigInteger)

sử dụng số nguyên lớn của modPow(số mũ BigInteger, BigInteger m). Điều này rõ ràng sẽ làm tăng độ phức tạp và số lượng phép tính.

Về java - Sức mạnh BigInteger của BigDecimal trong Java, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/25182975/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress