乱数について

乱数に対する対角線論法 - yamblogの続き.

プログラムの出力で01の文字列をつくってきたが,
頭に"0."をつけて[0,1]の実数の2進展開と対応付けることを考える.
例えば"10101"は"0.10101"となる.
”1”と”01111111…”は同じ値と対応付けられることが気になるかもしれないが,特に問題はない.


さて,このときプログラムの出力できる数とはどのようなものであるかを考える.

  • 有限桁の小数はもちろん全て出力できる.
  • 有理数であれば,無限桁であっても同じ列の繰り返しなので出力できる.
  • 無理数であってもsqrt(2)などはニュートン法などを使えば計算できるので出力できる.

(多倍長精度でメモリが不安になるかもしれないが,任意有限に使えるものとします.)

  • 代数的数であれば同様に方程式を解けば出力できる.
  • 円周率やオイラー数のようなものでも計算できるので出力できる.


では出力できない数とはどんな数であろうか?
誰か例を示して下さい.
まとまな手段じゃ無理だけど...