「数学コラム Rayo数より大きな数の構築を試みる3 Pi0関数 (2020/02/02)」
前回の続き。
int Cat()
{
int n=1;
for (;;)
{
n *= 2;
if (円周率の[TREE3]桁番目の数 < 5) break;
}
return n;
}
{
int n=1;
for (;;)
{
n *= 2;
if (円周率の[TREE3]桁番目の数 < 5) break;
}
return n;
}
このCat関数は、50%の確率で無限ループ。
Cat関数 > Rayo数。
50%の確率で有限ループ。
Cat関数 < Rayo数
となります。
(無限ループというチートを使ってるので当然といえば当然ですが)
これならRayo数を超える可能性はあります。
なぜ「超える可能性」。
「超える」と言い切らないかというと
本当に「100%超え」しちゃうと
無限ループ確定で不正になるから。^_^A;
わざとループが切れる可能性を作って
・50%の確率で無限だったら Cat > Rayoだが、無限ループを使ってるので不正
・50%の確率で有限だったら Cat < Rayo。大きさでは負けてるが有限ループであり不正ではない。
不正とは言い切れない逃げ口を残してる。
が。
α=円周率の[TREE3]桁番目の数
自体は0,1,2...9のどれかであり。
原理的に言えば、
膨大な計算時間を消費すればαの値を計算する事はできます。
(宇宙の寿命を遥かに超えるので人間には未来永劫無理ですが)
もしαの値が解明されたらシュレーディンガーの蓋が開く。
if (円周率の[TREE3]桁番目の数 < 5) break;
が有限ループか無限ループか判定できるので、
Cat関数の値は一意に確定します。
そこで、
if (円周率の[TREE3]桁番目の数 < 5) break;
を少し変更して判定を厄介にします。^^;
さて
円周率=
3.1415926535 8979323846 2643383279 5028841971 6939937510
5820974944 5923078164 0628620899 8628034825 3421170679
8214...
ですが、これを使って
Pi0関数 =
A.1桁目の値は0である
B. 2,3桁目の値は00である
C. 4,5,6桁目の値は000である
D. 7,8,9,10桁目の値は0000である
...
A、B、C、D・・・のいずれか
一つでも成立したらPi0関数の値は1。
そうでないなら0。
B. 2,3桁目の値は00である
C. 4,5,6桁目の値は000である
D. 7,8,9,10桁目の値は0000である
...
A、B、C、D・・・のいずれか
一つでも成立したらPi0関数の値は1。
そうでないなら0。
とする。
さてこのPi0関数。値はなんでしょーか。
仮に、piをランダムな0~9の文字列と考えると
(実際piをランダムと考えることができる。
なぜならpiの記述。3.1415...は10進数を使った表記であり、
人間が10進数を使うのは指が10本あるからである。
やろうと思えば2進数、3進数、4進数とかの表記法もある。
3.1415....の10進数表示は人間が勝手に作った
表記法であるからして
理論整然とした答えになる理由が全くない)
なぜならpiの記述。3.1415...は10進数を使った表記であり、
人間が10進数を使うのは指が10本あるからである。
やろうと思えば2進数、3進数、4進数とかの表記法もある。
3.1415....の10進数表示は人間が勝手に作った
表記法であるからして
理論整然とした答えになる理由が全くない)
すると
A.1桁目に0が出現する確率 1/10 = 0.1
B.2,3桁目に00が出現する確率 1/100 = 0.01
C.4,5,6桁目に000が出現する確率 1/1000 = 0.001
D.7,8,9,10桁目に0000が出現する確率 1/10000 = 0.00001
...
B.2,3桁目に00が出現する確率 1/100 = 0.01
C.4,5,6桁目に000が出現する確率 1/1000 = 0.001
D.7,8,9,10桁目に0000が出現する確率 1/10000 = 0.00001
...
γ = A、B、C、D,....の
どれか一つでもいいから達成される確率は
確率のA or B定理
P(A ∨ B) = 1- P(¬A ∧ ¬B)
ですから、
A、B、C、D,....の
どれか一つでもいいから達成される確率
= 1- (1-0.1 * 1-0.01 * 1-0.001 * ...)
= 1- (1-0.1 * 約1.0 * 約1.0 * ...)
= 1- (1-0.1)
= 1- (0.9)
= 約0.1
つまりPi0関数は
90%の確率で0,
10%の確率で1
と言えます。
ところが実際問題。
我々は円周率の値を
多少は知っている。
2020年現在の世界記録は34兆桁で。
この範囲に渡って大量の0は確認されてない。
条件にするとA720万まで
否定される事はわかっています。
次の(未解明)条件:
A720万+1が成功する確率は
0.000...(720万個)..0001
これはウルトラ絶望的に低い
確率であり、
まず成功する見込みはありません。
よって我々が観測してる範囲から
推測するとほぼ限りなく
Pi0 = 0
と言えます。
・・・が!^_^
それでも完全な0ではない。
あくまで観測の範囲内に
見つからないってだけで
もっと探索を増やせば
ある日突然に
A1000万
とかの条件で
0000000...(1000万個)...000
ぐらい大量の0が並んで出てくる
ゾーンが出てくる可能性は
否定できない。
よって、どれだけ
低い可能性と言えども
探索を続けてれば
どこかで判定が覆って
Pi0 = 1
になる可能性はいつだってあります。
重要な所としては、
Pi0関数の値は0か、1か。
円周率を全て知る神の視点から見れば判定可能であり
値は完全に確定しています。
だがPi0関数の値を
人間に判定することは不可能です。
・・・で!!! これを前述のCat関数の
break条件に入れて
int Cat0()
{
int n=1;
for (;;)
{
n *= 2;
if (Pi0 == 1) break;
}
return n;
}
{
int n=1;
for (;;)
{
n *= 2;
if (Pi0 == 1) break;
}
return n;
}
としたらどうなるか!
次回に続く。