- ベストアンサー
エクセルを使って円周率を作る方法
エクセルで少しの表記で円周率を自動で作る方法があるそうなんですが、そんな事を紹介してるページを探そうにもどう探せばよいのか・・・。 何方かやり方を教えて下さい。 ちなみに、これはスペックの低いパソコンでやると危険ですか?^^;なんかCPU使いまくってフリーズしそうですね。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
数学関数の中のPI関数をつかうということではだめですか。 セルに =+PI() と書くと 3.14159265358979 が入ります。
その他の回答 (3)
- nishi6
- ベストアンサー率67% (869/1280)
モンテカルロ法をシート上で実行してみます。 乱数でX,Y座標の値を出して、X^2+Y^2≦1 (原点からの距離が1以下)を満足する割合を求めます。 1×1の正方形とその中の1/4円の面積の比の計算です。この比を4倍したものがπになります。 A1に =RAND() B1に =RAND() C1に =A1^2+B1^2 D1に =COUNTIF(C:C,"<=1") E1に =COUNT(C:C) F1に =D1*4/E1 として、A1~C1のセットを行方向に複写していきます。 1例として、65000行くらい複写したら、F1(=πの概数)=3.140720847 でした。 下はVBAで1回1000万回の試行を500回繰り返してみました。 1晩(数時間でしょう。windows98、500MHz、メモリー128M)計算させて、平均:3.141590064 でした。 Sheet1のA列に試行結果を書いていきます。B1に =AVERAGE(A1:A500) としておけば、平均が出せます。 >ちなみに、これはスペックの低いパソコンでやると危険ですか? 私のPCではこれを計算している時は、他のことはできませんでした。寝てる間に計算させました。マクロを止めたくなったらESCキーを押します。 ツール→マクロ→Visual Basic Editor でVBE画面に移り、 表示→プロジェクトエクスプローラでプロジェクトエクスプローラを表示します。プロジェクトエクスプローラのSheet1をダブルクリック。出てきたコードウインドウに下記マクロをコピーして貼り付けます。 ここから ↓ Sub PaiCalc() Dim c0 As Long '試行回数 Dim c1 As Long '1回の試行で実行する回数のカウンタ Dim c2 As Long '円の中に入った回数 For c0 = 0 To 500 - 1 Randomize c2 = 0 For c1 = 1 To 10000000 c2 = c2 - ((Rnd() ^ 2 + Rnd() ^ 2) <= 1) If c1 Mod 1000000 = 0 Then Range("A1").Offset(c0, 0) = c2 / c1 * 4 End If Next Range("B2") = c0 Next End Sub
- MovingWalk
- ベストアンサー率43% (2233/5098)
ご希望のものとは違うかもしれませんが、 「モンテカルロ法によるπの算」はこちらにあります。 http://members.aol.com/Taijirou/
- sen-sen
- ベストアンサー率31% (66/211)
モンテカルロ法がよいでしょう。 乱数を発生させ、座標を決定し、その座標が円(の一部)に入いる確率を計算し、円周率を推計します。 スペックが低いパソコンでも危険はないでしょう。 関数電卓でも根性さえあれば、そこそこの精度で推計できます。