18 ポイント 投稿者 budlebee 2021-07-17 | 12件のコメント | WhatsAppで共有

円周率の小数点以下は、どの進法で書いてもすべての数字が同じ比率で現れる normal number であると強く推定されています。

normal number であれば、あり得るすべての数字の組み合わせを含む disjunctive sequence であることが証明されています。

つまり、バイナリで表現されたあらゆるコンピュータプログラムは、円周率の小数点以下のどこかに存在するということです。円周率の小数点以下でその位置さえ見つけられれば、あらゆる情報を保存し、復元できるようになります。

400行のテキストファイルを保存するのに5分ほどかかるそうですが、作者いわく、ムーアの法則を信じればよい……とのことです。

12件のコメント

 
hoochimong 2021-07-26

例えば 01010 のようなデータがあるとすると、円周率の中に 01010 と一致する位置がある、という理解になりますね。だから位置情報だけ保存すればよい、ということのようですが……

最近『Silicon Valley』というドラマを見ているのですが、圧縮アルゴリズムを使った新しいインターネットが出てくるんですよね。もし圧縮率100%近い円周率ファイルシステムが実用に使えるほど技術が発展したら、その新しいインターネットも本当に登場するのでしょうか?

 
ehlegeth 2021-07-19

円周率がどこからでもアクセスできる共通のdictionaryの役割を果たしていると考えればよさそうですね。

 
roxie 2021-07-18

どなたか、もう少しやさしく説明していただけませんか? 円周率が normal number であることと、ファイル保存時の圧縮率が100パーセントになることがどう関係しているのか、よく分かりません。

normal number というのは、たとえば円周率を5進数で表したとき、小数点以下1000桁まで並べると、0,1,2,3,4 がそれぞれ200個前後になる、という意味ですよね?

そこから先に進めずにいます……。

 
budlebee 2021-07-18

私の理解では次のとおりです。

normal number であれば、あらゆる可能な数字の組み合わせが少なくとも1回は現れることが証明されています。0110001... のようなバイナリ列も、すべて円周率の小数点以下のどこかに存在するはずです。そうした小数点位置だけを記憶しておけば、ファイルを記憶装置に直接保存しなくても復元できます。円周率の値は数学定数なので、記憶装置に保存しておく必要はなく、その都度計算して使えばよいということです。

 
roxie 2021-07-19

あらゆる可能な数字の組み合わせが少なくとも一度は現れることが証明されています

理解しました。本当にありがとうございます!

 
dbeat999 2021-07-17

円周率を誤差なく保存できるストレージがあるなら、そもそも圧縮をする必要はない…

 
budlebee 2021-07-18

円周率の値をストレージに保存して使うのではなく、その都度円周率の値を計算して使っているようです。だから100%圧縮と言っているのでしょうね。

 
zariski 2021-07-17

Wikipediaで圧縮率の定義[1]を調べてみたところ、一般的に考えられている計算方法とは違うようでした。

これについて私が昔書いた文章[2]があります。ずいぶん前のものですね。はは

[1] https://en.wikipedia.org/wiki/Data_compression_ratio

[2] https://wp.me/pPGG8-41E

 
budlebee 2021-07-17

圧縮率の定義が圧縮前の容量/圧縮後の容量だということを、私も初めて知りました。GitHub に 100% compression と書かれていたので、私の勘違いでしたね……。

 
kunggom 2021-07-17

違法素数(Illegal prime)という概念も思い出しますね(笑)

https://wp.me/pPGG8-3sT

 
ffdd270 2021-07-18

ものすごく面白い話ですねwwwwww もう違法パイの時代なのか……

  1. 違法コンテンツをあれで圧縮する

  2. それで出てくるどこかにあるパイの値の位置を知らせる

  3. 違法!

 
budlebee 2021-07-17

小数点以下の計算を先頭桁からではなく特定の桁から行うものをスピゴットアルゴリズムと呼びますが、pifs の場合は Bailey-Borwein-Plouffe 公式を用いて円周率の桁を計算しているそうです。

https://ko.wikipedia.org/wiki/スピゴット_アルゴリズム