2的500次方等於多少?數學老師說有151位數,但每個位數均需正確求出,有誰能求算出.謝謝!
2007-07-11 10:16:27 · 6 個解答 · 發問者 Anonymous in 電腦與網際網路 ➔ 程式設計
(一_一 |||)還是寫程式丟給電腦來計算好了。
用 Log 算也算不出來……
2007-07-11 16:47:41 補充:
2 的 50 次方等於…
「327339060789614187013189696827599152216642460430647894832913680961337964046745548832792325941571508866841275607109217256545885393053328527589376」
(我不知道上述值是否完全正確…)
以下是程式原始碼
//Power by Visual Studio 2005
#include
#include
#define BIT 151
#define LEN (BIT/4 1)
void multiply(int *a, int b, int *c, int N) { // b 為乘數
int i,tmp,carry=0;
for(i=N-1;i>=0;i--){
tmp=a[i]*b carry;
c[i]=tmp000;
carry=tmp/10000;
}
}
int main(int argc, char* argv[]){
//==========START==========//
FILE *f;
char *fn="output.txt";
int number[LEN]={0},result[LEN],i,j,e=500;
number[LEN-1]=1;
for(i=0;i
for(j=0;j
}
}
printf("2^%d= ",e);
for(j=0;j
}
f=fopen(fn,"w");
if(f!=NULL){
for(j=0;j
}
fclose(f);
}
//==========END==========//
printf("\n"),system("PAUSE");
return 0;
}
2007-07-11 16:53:47 補充:
真糟糕,經修改後上面程式「加號」全消失了。
2007-07-11 17:20:48 補充:
字打錯了,少打一個零,是 500 五百次方!
2007-07-11 17:45:06 補充:
上述的乘法演算法雖然完全取自參考資料網址,但是原作者寫的這個演算法是有問題的,因為它無法解決例如 10999 % 10000 等於 0999 的問題,也就是說上面計算的每一位數字是正確的,但是每個數之間可能會少一個零,所以整體來說,上面整個計算的值是錯誤的。
2007-07-11 17:45:11 補充:
所以我再次改寫程式,並計算過一遍,答案為:
「327 3390 6078 9614 1870 0131 8969 6827 5991 5221 6642 0460 4306 4789 4832 9136 8096 1337 9640 4674 5548 8327 0092 3259 0415 7150 8866 8412 7560 0710 0921 7256 5458 8539 3053 3285 2758 9376 」
修正後的位數總共 151 位,中間每四位數用空格分開。
2007-07-11 17:47:47 補充:
原先計算的答案是錯誤的,因為演算法的關係出現錯誤。
正確的答案在最下方的「補充內容」內,而錯誤的說明在包含在「補充內容」裡。
2007-07-11 18:03:48 補充:
原先第一次計算的答案,也就是有打黃色背景的數值是「不對」的;只有最下方「補充內容」的答案才是「正確」的。
2007-07-11 12:47:41 · answer #1 · answered by Big_John-tw 7 · 0⤊ 0⤋
這題在下的解答裡有在下所知最快的次方程式的大數版。
http://tw.knowledge.yahoo.com/question/question?qid=1607061205858
大數有許多結構與算法,
不同的結構速度可差上 4 ~ 20 倍,RAM 的用量可差上 4倍以上
不同的算法,速度可以差上 N 倍。
如乘法,在下已知的就有 O(n^2) 和 O(n^1.5) 和 O(n log n) 三種。
次方的算法速度也大有不同。像這題的 500 次方,可差上約 80 倍!
2007-07-12 22:24:15 補充:
在下正在準備把所學的大數問題 post 上討論區,包括結構與算法。
(因為太忙,估計要 1 ~ 2 個月。)
(畢人對大數只是小有研究,並未深入。
很可能有更快的算法存在!)
您要是在 2007年 9月以後看到這篇,它應該已經 post 上去了。
討論區網址:
http://www.phpbbserver.com/graphicsparalle/index.php?c=7
快速次方的 long 版 5天前已在那裡 post 上去。
有興趣的可以去看一下,
會比較容易了解大數版為什麼那麼寫。
2007-07-12 22:44:03 補充:
裡面已 post,除了次方long版外
還有 GCD 的中速版。
(快速版等您來 post 囉!^_^)
下一個 post出來的應該會是某數以下的質數。
最快的會比基本篩法快約 10 倍。
(最快的平行版已寫好,沒人問應該不會 post 上去(太複雜)。)
(次快的單機版已寫好,一週內應可完成最快的單機版。
到時再一起 post 上去。)
2007-07-13 04:43:52 補充:
500張影印紙約 5.5 公分 → 1000 張紙約 0.11 公尺
2^500 / 1000 * 0.11 約 3.60e146 公尺
光速 c 約 299792458.12 公尺 / 秒
3.60e146 / c = 1.20e138 秒 = 5.24e130 年!
不好意思,光從北極星走到地球也才 44 億年!
若用常用的影印紙 2^500張,不是到太陽,是到北極星的 1.191e121倍!
換成報紙/聖經紙,了不起是 1/3 ~ 1/4 而已!
就算是 1/11,也是 1e120倍!
2007-07-16 09:39:55 補充:
2^50 張影印紙光約要走4130 秒。
光從太陽到走球只要499秒。
也就是約 2^50 張影印紙約是地球到太限的距離(叫 1 AU) 的 8.28 倍。
木星約 5.2 AU, 土星約 9.5 AU。
所以,看您用啥紙囉!
還好,還沒出太陽系!^_^
(海王星約 30AU)
2007-07-17 01:09:43 補充:
A4影印紙對折50次
1. 影印紙有磅數的差別,不同的磅數厚度會不同。
我所說的是台灣常用的標準厚度。
(我記得是 70~80磅。美國用的單位〝好像〞不太一樣。)
(註:你若到那種超便宜的影印店,會用薄一點的紙!)
2. 用折的會比用疊的厚!
2007-07-12 18:19:04 · answer #2 · answered by ? 7 · 0⤊ 0⤋
2的500次方等於
32733906078961418700131896968275991522166420460430647894832913680961
33796404674554883270092325904157150886684127560071009217256545885393
053328527589376
2007-07-12 09:05:39 · answer #3 · answered by ? 4 · 0⤊ 0⤋
32733 90607 89614 18700 13189 69682 75991 52216 64204 60430 64789 48329 13680 96133 79640 46745 54883 27009 23259 04157 15088 66841 27560 07100 92172 56545 88539 30533 28527 58937 6
2007-07-11 14:25:42 · answer #4 · answered by Diamond Liu 7 · 0⤊ 0⤋
每個位數均需正確求出, 有點煩呢, 5點太小器了吧?
寫程式我不在行~
我來贊助點數好了 :P
版大自己也贊助一下吧~
2007-07-11 12:25:59 · answer #5 · answered by ? 5 · 0⤊ 0⤋
2的 500次方 = 3.27339061 10150
2007-07-11 16:15:56 補充:
327339061後面加142個0,共151個數字
2007-07-11 12:13:18 · answer #6 · answered by Frankie 5 · 0⤊ 0⤋