MENU
350,347

スレッドNo.2489

円周率の求め方

よく円周率の近似値を求めるのに円に内接する正多角形を利用している方法を目にする。
たぶんπ=3.141592・・・までの数値を手に入れるまでには正2812角形の図形を必要とするのかな?
一方単位円で動径がx軸とθ(ラジアン)である時

θ≒3*sin(θ)/(2+cos(θ))

なる関係性を利用すれば
θ=π/60(=3°)のラジアン角を利用することで

π/60≒3*sin(π/60)/(2+cos(π/60))
から
π≒180*sin(π/60)/(2+cos(π/60)
ここでらすかるさんのHPに載せてあった三角関数表を利用させてもらうと
=180*(-2*sqrt(15-3*sqrt(5))+2*sqrt(5+sqrt(5))+sqrt(30)+sqrt(10)-sqrt(6)-sqrt(2))/
(32+2*sqrt(15+3*sqrt(5))+2*sqrt(5+sqrt(5))+sqrt(30)-sqrt(10)-sqrt(6)+sqrt(2))
これを計算させると
=3.141592252236561・・・・・
の数値を与えてくれる。

引用して返信編集・削除(未編集)

下記の JavaScript 言語によるコードが 円周率の近似値を出力します。

どうしてこんなアルゴリズムで求められるのか分かりませんけれども。 (⁠・⁠o⁠・⁠;⁠)

function spigotPi(digits) {
let len = Math.floor(digits * 10 / 3) + 1;
let array = new Array(len).fill(2);
let result = [];
let q = 0, r = 0, num = 0;

for (let i = 0; i < digits; i++) {
let carry = 0;

for (let j = len - 1; j > 0; j--) {
num = array[j] * 10 + carry;
array[j] = num % (2 * j + 1);
carry = Math.floor(num / (2 * j + 1)) * j;
}

num = array[0] * 10 + carry;
q = Math.floor(num / 10);
r = num % 10;
array[0] = r;

result.push(q);
}

result.splice(1, 0, "."); // 小数点を追加

return result.join("");
}

// 使用例: π の最初の 100 桁を求める
console.log(spigotPi(100));

引用して返信編集・削除(未編集)

[2490] の続きです。

こういうことらしいです。

引用して返信編集・削除(未編集)

πやeなどは代表的無理数でまた超越数でもあり、並んでいく数字はまさに素数のように何が次に並んでいくのか
見当もつかない全く気紛れでしかないような、ある意味乱数に使いたくなる代物なのに、例のごとくある意味規則的な
法則により無限に数字を生み出していけるものが存在できることが不思議でなりません。
JavaScript 言語でコードされていたのを
PARI/GP様にコード変更して実行させたら
gp > print(spigotPi(780));
[3].[1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9, 3, 2, 3, 8, 4, 6, 2, 6, 4, 3, 3, 8, 3, 2, 7, 9, 4, 10,
2, 8, 8, 4, 1, 9, 7, 1, 6, 9, 3, 9, 9, 3, 7, 5, 1, 0, 5, 8, 2, 0, 9, 7, 4, 9, 4, 4, 5, 9, 2, 3, 0, 7,
8, 1, 6, 4, 0, 6, 2, 8, 6, 2, 0, 8, 9, 9, 8, 6, 2, 7, 10,
3, 4, 8, 2, 5, 3, 4, 2, 1, 1, 7, 0, 6, 7, 9, 8, 2, 1, 4, 8, 0, 8, 6, 5, 1, 3, 2, 8, 2, 3, 0, 6, 6, 4,
7, 0, 9, 3, 8, 4, 4, 6, 0, 9, 5, 5, 0, 5, 8, 2, 2, 3, 1, 7, 2, 5, 3, 5, 9, 4, 0, 8, 1, 2, 8, 4, 8, 1,
1, 1, 7, 4, 5, 0, 2, 8, 4, 1, 0, 2, 6, 10,
1, 9, 3, 8, 5, 2, 1, 1, 0, 5, 5, 5, 9, 6, 4, 4, 6, 2, 2, 9, 4, 8, 9, 5, 4, 9, 3, 0, 3, 8, 1, 9, 6, 4,
4, 2, 8, 8, 1, 0, 9, 7, 5, 6, 6, 5, 9, 3, 3, 4, 4, 6, 1, 2, 8, 4, 7, 5, 6, 4, 8, 2, 3, 3, 7, 8, 6, 7,
8, 3, 1, 6, 5, 2, 7, 1, 1, 10,
1, 9, 0, 9, 1, 4, 5, 6, 4, 8, 5, 6, 6, 9, 2, 3, 4, 6, 0, 3, 4, 8, 6, 1, 0, 4, 5, 4, 3, 2, 6, 6, 4, 8,
2, 1, 3, 3, 9, 3, 6, 0, 7, 2, 5, 10,
2, 4, 9, 1, 4, 1, 2, 7, 3, 7, 2, 4, 5, 8, 6, 10,
0, 6, 6, 0, 6, 3, 1, 5, 5, 8, 8, 1, 7, 4, 8, 8, 1, 5, 2, 0, 9, 2, 0, 9, 6, 2, 8, 2, 9, 2, 5, 4, 0, 9,
1, 7, 1, 5, 3, 6, 4, 3, 6, 7, 8, 9, 2, 5, 8, 10,
3, 5, 9, 10,
1, 1, 3, 3, 0, 5, 3, 0, 5, 4, 8, 8, 2, 0, 4, 6, 6, 5, 2, 1, 3, 8, 4, 1, 4, 6, 9, 5, 1, 9, 4, 1, 5, 1,
1, 6, 0, 9, 4, 3, 3, 0, 5, 7, 2, 6, 10,
3, 6, 5, 7, 5, 9, 5, 9, 1, 9, 5, 3, 0, 9, 2, 1, 8, 6, 1, 1, 7, 3, 8, 1, 9, 3, 2, 6, 1, 1, 7, 9, 3, 1,
0, 5, 1, 1, 8, 5, 4, 8, 0, 7, 4, 4, 6, 2, 3, 7, 9, 9, 6, 2, 7, 4, 9, 5, 6, 7, 3, 5, 1, 8, 8, 5, 7, 5,
2, 7, 2, 4, 8, 9, 1, 2, 2, 7, 9, 3, 8, 1, 8, 2, 10,
1, 1, 9, 4, 9, 1, 2, 9, 8, 3, 3, 6, 7, 3, 3, 6, 2, 4, 4, 0, 6, 5, 6, 6, 4, 3, 0, 8, 5, 10,
2, 1, 3, 9, 4, 9, 4, 6, 3, 9, 5, 2, 2, 4, 7, 3, 7, 1, 9, 0, 6, 10,
2, 1, 7, 9, 8, 6, 0, 9, 4, 3, 7, 0, 2, 7, 7, 0, 5, 3, 9, 2, 1, 7, 1, 7, 6, 2, 9, 3, 1, 7, 6, 7, 5, 2,
3, 8, 4, 6, 7, 4, 8, 1, 8, 4, 6, 7, 6, 6, 9, 4, 0, 5, 1, 3, 1, 9, 10,
0, 5, 6, 8, 1, 2, 7, 1, 4, 5, 2, 6, 3, 5, 6, 0, 8, 2, 7, 7, 8, 5, 7, 7, 1, 3, 4, 2, 7, 5, 7, 7, 8, 9,
6, 0, 9, 1, 7, 3, 6, 3, 7, 1, 7, 8, 7, 2, 1, 4, 6, 8, 4, 4, 0, 8, 10,
1, 2, 2, 4, 9, 5, 3, 4, 2, 10,
1, 4, 6, 5, 4, 9, 5, 8, 5, 3, 7, 1, 0, 5, 0, 7, 9, 2, 2, 7, 9, 6, 8, 9, 2, 5, 8, 9, 2, 3, 5, 4, 1, 10,
1, 9, 9, 5, 6, 1, 1, 2, 1, 2, 9, 0, 2, 1, 9, 6, 0, 8, 6, 3, 10,
3, 4, 4, 1, 8, 1, 5, 9, 8, 1, 3, 6, 2, 9, 7, 7, 4, 7, 7, 1, 3, 0, 9, 9, 6, 0, 5, 1, 8, 7, 0, 7, 2, 1,
1, 3, 4, 9, 9, 9, 9, 9, 9, 8, 3, 7, 2, 9, 7, 8, 0, 4, 9, 9, 5]
と予想に反して10の数字を含んで並ぶんですが
(コード上どこを変更したらいいのか今のところわからないのでそのままです。)
ただし2,10と並んでいれば-->3,0;1,9,10と並んでいたら-->2,0,0
として見て行けば,小数点以下762桁から9が6個並ぶファインマンポイントまでπの正確な数値を
見て行くことが出来るようになっています。
ほんとに不思議ですね、πは言われた通りに動いているだけです。
しかし並んでいく数字は全くランダムに発生
この規則性と不規則性の共存が起こることが驚異です。

引用して返信編集・削除(編集済: 2025年02月06日 15:59)

このスレッドに返信

ロケットBBS

Page Top