圧縮率が100%に近い円周率ファイルシステム
(github.com)円周率の小数点以下は、どの進法で書いてもすべての数字が同じ比率で現れる normal number であると強く推定されています。
normal number であれば、あり得るすべての数字の組み合わせを含む disjunctive sequence であることが証明されています。
つまり、バイナリで表現されたあらゆるコンピュータプログラムは、円周率の小数点以下のどこかに存在するということです。円周率の小数点以下でその位置さえ見つけられれば、あらゆる情報を保存し、復元できるようになります。
400行のテキストファイルを保存するのに5分ほどかかるそうですが、作者いわく、ムーアの法則を信じればよい……とのことです。
12件のコメント
例えば 01010 のようなデータがあるとすると、円周率の中に 01010 と一致する位置がある、という理解になりますね。だから位置情報だけ保存すればよい、ということのようですが……
最近『Silicon Valley』というドラマを見ているのですが、圧縮アルゴリズムを使った新しいインターネットが出てくるんですよね。もし圧縮率100%近い円周率ファイルシステムが実用に使えるほど技術が発展したら、その新しいインターネットも本当に登場するのでしょうか?
円周率がどこからでもアクセスできる共通のdictionaryの役割を果たしていると考えればよさそうですね。
どなたか、もう少しやさしく説明していただけませんか? 円周率が normal number であることと、ファイル保存時の圧縮率が100パーセントになることがどう関係しているのか、よく分かりません。
normal number というのは、たとえば円周率を5進数で表したとき、小数点以下1000桁まで並べると、0,1,2,3,4 がそれぞれ200個前後になる、という意味ですよね?
そこから先に進めずにいます……。
私の理解では次のとおりです。
normal number であれば、あらゆる可能な数字の組み合わせが少なくとも1回は現れることが証明されています。0110001... のようなバイナリ列も、すべて円周率の小数点以下のどこかに存在するはずです。そうした小数点位置だけを記憶しておけば、ファイルを記憶装置に直接保存しなくても復元できます。円周率の値は数学定数なので、記憶装置に保存しておく必要はなく、その都度計算して使えばよいということです。
理解しました。本当にありがとうございます!
円周率を誤差なく保存できるストレージがあるなら、そもそも圧縮をする必要はない…
円周率の値をストレージに保存して使うのではなく、その都度円周率の値を計算して使っているようです。だから100%圧縮と言っているのでしょうね。
Wikipediaで圧縮率の定義[1]を調べてみたところ、一般的に考えられている計算方法とは違うようでした。
これについて私が昔書いた文章[2]があります。ずいぶん前のものですね。はは
[1] https://en.wikipedia.org/wiki/Data_compression_ratio
[2] https://wp.me/pPGG8-41E
圧縮率の定義が圧縮前の容量/圧縮後の容量だということを、私も初めて知りました。GitHub に 100% compression と書かれていたので、私の勘違いでしたね……。
違法素数(Illegal prime)という概念も思い出しますね(笑)
https://wp.me/pPGG8-3sT
ものすごく面白い話ですねwwwwww もう違法パイの時代なのか……
違法コンテンツをあれで圧縮する
それで出てくるどこかにあるパイの値の位置を知らせる
違法!
小数点以下の計算を先頭桁からではなく特定の桁から行うものをスピゴットアルゴリズムと呼びますが、pifs の場合は Bailey-Borwein-Plouffe 公式を用いて円周率の桁を計算しているそうです。
https://ko.wikipedia.org/wiki/スピゴット_アルゴリズム