• 締切済み

C言語などで円周率を求める方法を教えてください

C言語などで円周率を求める方法を教えてください C言語でなくても構いませんが1000桁くらい求めたいです よろしくお願いします

みんなの回答

回答No.3

技術評論社 河西朝雄著の 「C言語によるはじめてのアルゴリズム入門」 という本の 第二章の数値計算の部分に πの1000桁を求めるプログラムが載っています。 こちらを参考にするとよいとおもいます。 円周率をもとめるのには マチンの公式を使っています。 多桁の数を計算する関数も作っています。

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.2

円周率の計算自体はそんなに難しくありません。 π=6Σ[n→∞]{(2n)!/((2^(4n+1)(n!)^2(2n+1))} などのような級数をプログラミングすれば可能です。 http://ja.wikipedia.org/wiki/%E5%86%86%E5%91%A8%E7%8E%87 問題は桁数です。普通にプログラミングしたのでは、その言語がサポートしている有効桁数までしか求めることができません。 それを解決するには、有効桁数を設定できるような数値計算ライブラリを入手するか、自作するしかありません。 自作する一番簡単な方法は、例えば有効桁数1000桁の数値を扱いたい場合、1000桁の文字列(または1000個の配列)に数値を格納し、その文字列(配列)同士で加減乗除ができるような関数を作ります。

  • reiman
  • ベストアンサー率62% (102/163)
回答No.1

PHPならば <?php for($sum=0,$i=0;$i<20;$i++) { $sum+=dash(2*$i)/pow(2,4*$i+1)/pow(dash($i),2)/(2*$i+1); $result=$sum*6; print<<<EOL <div>{$i}:{$result}</div> EOL; } function dash($n) { if($n<2)return 1; return $n*dash($n-1); } ?> 結果: 0:3 1:3.125 2:3.1390625 3:3.1411551339286 4:3.14151117234 5:3.1415767157749 6:3.1415894253191 7:3.1415919823584 8:3.1415925111579 9:3.1415926228706 10:3.1415926468756 11:3.1415926521059 12:3.1415926532587 13:3.1415926535153 14:3.1415926535729 15:3.141592653586 16:3.1415926535889 17:3.1415926535896 18:3.1415926535897 19:3.1415926535898

関連するQ&A

  • C言語で円周率

    大学でC言語で円周率を出すプログラムを作れと言われたのですが 一度作ってみたもののうまくできず さらに先生には 「もっと説明できるように作って来い」と言われてしまって困っています。 簡単なプログラミングで作りたいのですが どなたか教えていただけるとうれしいです!

  • C言語で円周率を求めるプログラムを作りたいのですがわかりません。

    C言語で円周率を求めるプログラムを作りたいのですがわかりません。 どなたか教えていただけないでしょうか。

  • c言語入門者です。

    c言語入門者です。 円周率暗記練習のプログラムを作成したいと思いましたが、早速つまずいています。 二冊の入門書は結構読み込んだつもりです。三日間考えたり検索してみたのですが、 どうしても糸口が見つからなかったので質問します。 円周率一万桁程度の数列に対して例えば3.1415926535や3.14などの先頭からの一部のみの数列で 真とする方法はどうすれば良いのでしょうか? また一万桁などの大きなデータはファイル入力によって処理するのでしょうか?

  • 円周(率)の計算方法

    文系人間です。 高校の数学は、計算問題は解けるけど…といったレベルでした。 円周率は、「円周÷直径」と習いました。 しかし、実生活において円周や直径を実測しようと思ったら、 定規や巻き尺を使ってせいぜい10分の1ミリまでが限界です。 それで正確な(小数点以下何兆ケタの)円周率が算出できるとは思えません。 ということは円周も計算式で求めなければならないということです。 で、円周は、「直径×円周率」…これでは堂々巡りですね。 円周を円周率を使わずに求める方法ってあるんでしょうか。 ある値の近似値ってその値そのものですか? 小数点以下何兆ケタの円周率を算出する公式は調べれば出てくると思いますが、 その公式が意味するところは、一般人にも分かるように説明できるのでしょうか。 また、そのような公式は、円周と関係あるのでしょうか、ないのでしょうか。 円周と関係ないとしたら、どうして定義から離れたところで、円周率が算出できるのでしょうか。 円周率に対するもやもやした気持ちを言葉にすること自体が難しいのですが、 あえて質問にするとしたらこんな形です。 推察するに聞きたいことはそうじゃないだろ、というご意見でも結構です。 よろしくお願いいたします。

  • C言語、円周率の値が0.000000?

    いつも大変お世話になりありがとうございます。 下記のコードを実行したところ、円周率の値が0.000000になりました。 どうしてでしょうか? アドバイスの程宜しくお願い申し上げます。 #include <stdio.h> int main(void) { double pi; printf("円周率の値はいくつですか?\n"); scanf("%1f", &pi); printf("円周率の値は%fです。\n", pi); return 0; } C:\MinGW>Sample9 円周率の値はいくつですか? 3.14 円周率の値は0.000000です。

  • 円周率

    1兆2411億桁までの円周率がのっているサイトってありますか? もしあるのであれば、教えてください。

  • 円周率の求め方

    円周率は3,141592…… などといいますが、 どのような式から出ている答えなんで すか? 知ってる方、教えてください ... 現在は、無限級数展開を利用する方法が一般的 ですが、アルキメデスは円に内接、外接する正多角形の周長で計算し、3桁 円周を測る 円を作って転がして求める方法。(やりやすい方法と実測値). 再帰的に円周 率を求める方法. 正n角形の面積 円に内接や外接する正n角形の面積から円周率を 求めます。 正2n角形の周りの長さ 円に内接2n角形の周りの長さの求め方. 確率で円周 率

  • なぜ円周率ってそんなに重要なんですか

    円周率。円の直径の約3倍が円の長さというのはわかるのですが、その円周率を突き詰めていくのにどういった意味があるんでしょうか?3. 1415926535 8979323846....と桁を増やしていって、その数を使って何に応用するというか、役にたつんでしょうか?

  • 円周率について

    初歩的な質問ではずかしいのですが、円周率の近似値についての質問です。アルキメデスの方法では円に内接・外接する正多角形で円周率の上限、下限を計算するため、何桁まで信頼できるのか、判定できますが、マチンの公式などの、級数によって近似値を求める場合、何桁まで信頼できるのかの判定はどのようにしているのでしょうか。ご存じの方がおりましたら、教えて下さい。

  • C言語で円周率を求めるプログラムを解読しています。

    C言語で円周率を求めるプログラムを解読しています。 ウィキ(http://ja.wikipedia.org/wiki/%E5%86%86%E5%91%A8%E7%8E%87)にも載っていましたが、 π/6=で始まる式を使って、 一項一項を順に求めていき、 最後にすべての項を足したものに6をかけて πを求めるという方法を使っています。 誤差が小さくなるまで繰り返すということで while(a>=1e-10) という表現をしているのですが、 ここのところが理解できません。 どなたか教えてくださいませんか? また、eとは自然対数の底などに用いられるあのeのことでしょうか? C言語初心者なのでお手柔らかに説明していただけると助かります。