我要找的蟒蛇 計算大的數字計算大的數字,但它不能。我怎麼能在Python
這樣的:
9999999999999999999999999999999999 ** 999999999999999999999999999999999999999999999999999
我要找的蟒蛇 計算大的數字計算大的數字,但它不能。我怎麼能在Python
這樣的:
9999999999999999999999999999999999 ** 999999999999999999999999999999999999999999999999999
Python支持長整型,所以你可以只打印表達。這可能是不是GMP或其他圖書館,但你想要做什麼的問題,有效的是,它是不可能計算該值:
(10**35 - 1) ** (10**52 - 1)
約爲10 ** (35 * 10**52)
其中包含有關10**52
數字。
讓我們考慮一個存儲芯片有多大,我們可以假設manifacture。月球的質量約爲7.34767309 * 10^22
千克,電子的質量爲9.10938188 * 10^(-31)
千克。讓我們假設我們可以使用電子來保存一個十進制數字。這意味着使用月球作爲記憶,我們可以使用大約8.066050130286116 * 10^52
個電子。
這是什麼意思?如果你的超級RAM芯片和月球一樣大,你就可以計算出這個數字。如果你懂了,那對你很好,否則如果你是一個凡人,你根本無法希望擁有足夠的記憶。
DecInt
模塊可以幫助您處理100k-數百萬位數字的數字,但不止如此,您需要特定的硬件和更大的數字(如您所展示的示例)根本無法實現。
你爲什麼不作出號碼作爲字符串 ,使功能,做類似的事情作爲人的手,用繩子倍增。
假設你讓2串 「99876」 和 「123」
,並str_multiply功能 這需要2參數作爲參數
的後者獲取字符串長度。 「123」上的3個字符做所以它是3(忽略空字符) 這裏是僞代碼
len_2 = string_len(latter);
len_1 = string_len(former);
flag = 0;
result_string = "";
for(i=len_2-1;i>=0;i--)
{
for(k=len_1;k>=0;k--)
{
a = alphabet_to_integer(latter[i]);
b = alphabet_to_integer(former[k]);
c = a*b;
c = c * 10 + flag;
flag = c/10;
ch = integer_to_alphabet(c%10);
result_string = concat(ch,result_string);
}
}
,如果你想不只是2號,但10號(或更多) 你可以調用一次又一次str_multiply函數。
這是我第一次回答別人的問題。 所以我希望這個幫助比平常更多 謝謝!
你知道你的計算結果是10^52位的數字? – halex