トップページ⇒tech
62コメント16KB

PCでPIの計算を1兆桁してみるスレ

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
PCでPIの計算を1兆桁してみるべし。
0002貧乏紙NGNG
Ver.2.0
Get!
0003デフォルトの名無しさんNGNG
「πのはなし」金田康正著、東京図書、1991
この本がわかりやすくておすすめ。でも絶版。図書館で検索してください。

で、実際問題、1兆桁は計算結果をストレージするだけでも大変。
まず1台のPCでチャレンジするのは不可能。

グリッドコンピューティングで、東大のスパコンに対抗できるかどうか。
頭のいい人、コメントよろ。
0004デフォルトの名無しさんNGNG
ウイルスにして無理やり計算させてしまうとか…(←本気にしないように)
0005デフォルトの名無しさんNGNG
そもそもパイとはなんなのかの説明がないとパイを求めるための計算式をわれわれはかけない
0006デフォルトの名無しさんNGNG
1兆桁だと500GBくらい?

俺のメインマシンは1TBなので実現不能ではないな。
そんなに空いてないけど。
0007デフォルトの名無しさんNGNG
http://3.141592653589793238462643383279502884197169399375105820974944592.jp/
ここをクリックして1時間ほど放置してみる
0008デフォルトの名無しさんNGNG
  ∧||∧     \    │   蟹 警報! ! |  /
 (  ⌒ ヽ      \   └―――──―――┘ /“corega FEther PCI-TXC Plus
  ∪  ノ        \     ヽ(´ー`)ノ    / 】“ELECOM LD-10100S
   U U        \    ∧∧∧∧∧ / 易】“ GreenHouse GH-ET100RT
 オンボードが蟹だった \<     カ  >【安易】“駄メルコ LGY-PCI-TXD
v(・ω・)v v(・ω・)v v(・ω・)v<      二 .>【安易】“プラネッ糞 FW-110TX
v(・ω・)v v(・ω・)v v(・ω・)v< 悪   チ  >【安易】“哀王 ET100-PCI-L2
―――――――――――‐< 感  ッ  >―――――――――――――――――――‐
 蟹チップ___マンセー`ヾヽ< !!!!!  プ  > 蟹は蟹であると見抜ける人でないと  |\
    ,r''´  ,ォく ̄^       〉、<     の >(ハイエンドなLAN環境を実現するのは)難しい
 /     / ノ !        / { } ∨∨∨∨∨ \     / |/|           __ \  /
./       し' ノ、   , -、 {  `′ /         \   \ 丿 __     '"ゞ'-'  | |
{ ヾ;、.   _,.ィ「! }-ィ゙ /〉}、ヽ,  ‐/              \  | | '"-ゞ'-'____| | __//
ヽ、 ~ ,r'ソ  ト-'′ `┬'^い, }  /  ∧∧   ミ ドスッ \\\| | ̄ ̄ ::::::::   ̄ ̄\/
.( 'ー')j/  ヾj   jツ   i / ,ゝ/  (   ,,)┌―─┴┴─‐`く      ( ,-、 ,:‐、    |/\
. [`〔」ノ     `'ー'゙    {  `7  /   つ   RealTek   \              |/\
  `'y′            [ニ7 〜′ /´ └―─┬┬─―─ \  __,-'ニニニヽ .   |/\
   〉             } /   ∪ ∪         ││ ε3     \ ヾニ二ン"     |/\
  (  蟹. REALTEK ノ/             
0009デフォルトの名無しさんNGNG
一桁割り出したら、一桁削っていけば、そんなに
容量は必要ない・・・ってアルゴリズムを考えれば、PCでも可能。
0010デフォルトの名無しさんNGNG
>>1
出してみたぞ、大体3.115926535だった。
0011デフォルトの名無しさんNGNG
>>10
3.14 より遠い。。。
0012デフォルトの名無しさんNGNG
>>6
国家予算や国債発行額なんかはそっちの単位使ってくれた方が分かりいいな
0013終了ですか?NGNG
1兆桁目は「2」らしいよ。

0014デフォルトの名無しさんNGNG
モンテカルロ法だと分散させやすいかもな。
0015デフォルトの名無しさんNGNG
ティンコの円周/直径 = 2.9 ≠π

な、なぜだ!!
0016 NGNG
>>15
行為後の円周/行為前の直径≒2.9
これを、円周率、自然対数の底とならんで数学の3大無理数という。
0017デフォルトの名無しさんNGNG
オレ関数電卓持ってるしパイを計算しなくてもパイボタンがついてるからこのスレみたいに面倒なことする必要ないし。
0018デフォルトの名無しさんNGNG
関数電卓程度の桁数なら暗記できるだろ。
0019デフォルトの名無しさんNGNG
半径1の円の面積がπ
あるいは
直径1の円周が2π

これがπの定義だよね?
0020デフォルトの名無しさんNGNG
となるとπの計算とは
半径1の面積を計算する事
あるいは
直径1/2の円の円周を計算する事と
等価
0021デフォルトの名無しさんNGNG
>直径1の円周が2π
お〜いっ!
0022デフォルトの名無しさんNGNG
πの定義も知らんのかよ・・・終わってるな。
0023デフォルトの名無しさんNGNG
e^πi = -1
0024デフォルトの名無しさんNGNG
>>3
お会いした東大のK田先生はちょっと怖かった。。
0025デフォルトの名無しさんNGNG
age
0026デフォルトの名無しさんNGNG
芸津は自分の資産をwindowsで管理できないのか・・・
0027デフォルトの名無しさんNGNG
>>26
やつといえども、一兆桁の資産はないだろ。
0028デフォルトの名無しさんNGNG
個人資産は5兆円を越える哉。
0029デフォルトの名無しさんNGNG
日本の国家予算でも14桁なんだが。
0030デフォルトの名無しさんNGNG
sage
0031デフォルトの名無しさんNGNG
白血病解析プロジェクトのように
スクリーンセーバーに計算させられたら面白いのに
0032デフォルトの名無しさんNGNG
3. 1415 9265 3589 7932 3846 2643 3832 7950 2884 1971 6939 9375 1058 2097 4944
5923 0781 6406 2862 0899 8628 0348 2534 2117 0679 8214 8086 5132 8230 6647 0938
4460 9550 5822 3172 5359 4081 2848 1117 4502 8410 2701 9385 2110 5559 6446 2294
8954 9303 8196 4428 8109 7566 5933 4461 2847 5648 2337 8678 3165 2712 0190 9145
6485 6692 3460 3486 1045 4326 6482 1339 3607 2602 4914 1273 7245 8700 6606 3155
8817 4881 5209 2096 2829 2540 9171 5364 3678 9259 0360 0113 3053 0548 8204 6652
1384 1469 5194 1511 6094 3305 7270 3657 5959 1953 0921 8611 7381 9326 1179 3105
1185 4807 4462 3799 6274 9567 3518 8575 2724 8912 2793 8183 0119 4912 9833 6733
6244 0656 6430 8602 1394 9463 9522 4737 1907 0217 9860 9437 0277 0539 2171 7629
3176 7523 8467 4818 4676 6940 5132 0005 6812 7145 2635 6082 7785 7713 4275 7789
6091 7363 7178 7214 6844 0901 2249 5343 0146 5495 8537 1050 7922 7968 9258 9235
4201 9956 1121 2902 1960 8640 3441 8159 8136 2977 4771 3099 6051 8707 2113 4999
9998 3729 7804 9951 0597 3173 2816 0963 1859 5024 4594 5534 6908 3026 4252 2308
2533 4468 5035 2619 3118 8171 0100 0313 7838 7528 8658 7533 2083 8142 0617 1776
6914 7303 5982 5349 0428 7554 6873 1159 5628 6388 2353 7875 9375 1957 7818 5778
0532 1712 2680 6613 0019 2787 6611 1959 0921 6420 1989 3809 5257 2010 6548 5863
2788 6593 6153 3818 2796 8230 3019 5203 5301 8529 6899 5773 6225 9941 3891 2497
2177 5283 4791 3151 5574 8572 4245 4150 6959 5082 9533 1168 6172 7855 8890 7509
8381 7546 3746 4939 3192 5506 0400 9277 0167 1139 0098 4882 4012 8583 6160 3563
7076 6010 4710 1819 4295 5596 1989 4676 7837 4494 4825 5379 7747 2684 7104 0475
3464 6208 0466 8425 9069 4912 9331 3677 0289 8915 2104 7521 6205 6966 0240 5803
8150 1935 1125 3382 4300 3558 7640 2474 9647 3263 9141 9927 2604 2699 2279 6782
3547 8163 6009 3417 2164 1219 9245 8631 5030 2861 8297 4555 7067 4983 8505 4945
003332NGNG
次の人お願い。
0034nokaiNGNG
http://www.nokai.ne.jp/
君たちのような頭の悪すぎる人たちはここへ来なさい
0035nokaiNGNG
http://www.nokai.ne.jp/
カモ−ン!
0036デフォルトの名無しさんNGNG
このアドレスが出るたびに思うんだけど

http://3.141592653589793238462643383279502884197169399375105820974944592.jp/

一体、何桁来るの?
0037デフォルトの名無しさんNGNG
そのアドレスにいって一時間放置する、とかいうレスがあったが普通にソースみればでてくるYO。

数えてみたら
623761桁でした。ろくじゅうまん桁・・・
一兆桁までまだまだですな。
0038デフォルトの名無しさんNGNG
bcによる円周率10,000桁ベンチマーク
gccでコンパイルしたbcで 489.24/485.22 秒
iccでコンパイルしたbcで 435.04/433.89 秒

--- /tmp/bc.gcc.log2003-12-27 18:38:56.000000000 +0900
+++ /tmp/bc.intel.log2003-12-27 18:30:23.000000000 +0900
@@ -146,6 +146,6 @@
91403599895353945909440704691209140938700126456001623742880210927645\
79310657922955249887275846101264836999892256959688159205600101655256\
375676
-real 489.24
-user 485.22
-sys 0.05
+real 435.04
+user 433.89
+sys 0.00

bcのconfigureオプション
gcc: CC="gcc-3.3" CFLAGS="-O3 -funroll-loops" YACC="bison -y -d" ./configure
icc: CC="icc" CFLAGS="-xK -O3 -ipo -ipo_obj" YACC="byacc -d" ./configure
CPU情報(抜粋)
model name: Intel(R) Celeron(R) CPU 1.80GHz
cpu MHz: 1797.707
cache size: 128 KB

コマンドライン
$ echo "scale=10000; 4 * a(1);" | time -p bc -l > log 2>&1

bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
0039デフォルトの名無しさんNGNG
とりあえず50億桁計算できるアルゴリズム考えてみるっていうのは?
0040デフォルトの名無しさんNGNG
なんで?
0041デフォルトの名無しさんNGNG
分散処理で無限級数扱うのって激しく難しそう。
0042デフォルトの名無しさんNGNG
昔、あったよね、パイの分散プロジェクト・・・
0043デフォルトの名無しさんNGNG
>>31
スクリーンセーバーより常駐ソフトにしてみたほうがいいと思うが。
0044デフォルトの名無しさんNGNG
誰かグリッドコンピューティングで作ってみろ。
0045デフォルトの名無しさんNGNG
>>9
16進数でなら 1億桁目だけを求めるような事が可能(時間はかかるが)

10進では未だそのアルゴリズムは出来ていない。
0046デフォルトの名無しさんNGNG
で分散可能なの?
0047デフォルトの名無しさんNGNG
http://www.google.com/search?q=+e^(PI*i)
http://www.google.com/search?q=+PI
http://www.google.com/search?q=おっぱい
0048デフォルトの名無しさんNGNG
http://www.cecm.sfu.ca/projects/pihex/
0049デフォルトの名無しさんNGNG
>>45 の解説
http://crd.lbl.gov/~dhbailey/
http://www.tensyo.com/urame/prog/piHex.htm

>>48はこれを使って数百兆桁目を計算しようという事みたい
0050デフォルトの名無しさんNGNG
現在の一兆桁の記録は、以外にも古典的なarctanの公式を使ったらしい。
0051デフォルトの名無しさんNGNG
マチンの公式?
0052デフォルトの名無しさんNGNG
アークたん
0053デフォルトの名無しさんNGNG
分散は多分不可能。
できるならグリッドでとうにしている。
0054デフォルトの名無しさんNGNG
それを考えることが楽しいのかとおもうが。
グリッドでやられていないから不可能。ってのは論理が逆だし
0055デフォルトの名無しさんNGNG
>>54
漏れも計算時間を短縮するっていう目的で分散処理を使うのなら無理だと思う。
マチンの公式とかだったら、級数展開の計算に1番時間がかかると思うけど
これをパラレルに計算するはある程度は可能だけどあまり意味が無いような気がする。
リソースの分散とかなら意味があるかもしれないけど。
0056デフォルトの名無しさんNGNG
/* 30桁までの最速プログラム */
printf("3.141592653589793238462643383279\n");
0057デフォルトの名無しさんNGNG
>>56 敗れたり。

puts("3.141592653589793238462643383279\n");
0058デフォルトの名無しさんNGNG
puts("3.141592653589793238462643383279");
0059デフォルトの名無しさんNGNG
P2P利用できないか?
0060デフォルトの名無しさんNGNG
てめえら、何桁っていうか下何桁だろ。
0061デフォルトの名無しさんNGNG
違うだろ
下n桁っつったら、表現悪いが
一番右の数字から左にn個分、その数字の列を指すんだろ?
喪前は下30桁と言えば小数第30位までだと思うのか?
0062デフォルトの名無しさんNGNG
翻訳してあげると、下何桁といったら整数の下位から何桁分かを表す罠。
■ このスレッドは過去ログ倉庫に格納されています