「数学コラム Rayo数より大きな数の構築を試みる3 Pi0関数 (2020/02/02)」





前回の続き。

int Cat()
{
  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。

とする。

さてこのPi0関数。値はなんでしょーか。




仮に、piをランダムな0~9の文字列と考えると
 (実際piをランダムと考えることができる。
なぜなら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
...

γ = 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;
}

としたらどうなるか!

次回に続く。