2009.05.01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

MHI 5.0

この「にっき」には暴力シーンやグロテスクな表現が含まれています。

(2009.05.01)

$ Excel-VBA で Linux のファイルを生成する時は

改行コードを最初から LF にしておいてもらうようにしなくちゃな。

というか、Linux のテキストファイルを Excel で自動生成するのって、 どうにも「邪道」に思えて仕方がない。

いや、それなりに合理的な方法なんだけどね。

# それ、単に VisualBasic が嫌いなだけかと思う > 自分

$ 「2進の浮動小数点数で、0.0000005は正確に表現できません」はどうやったら証明できるのでしょうか?

ある数 S を 2進数で表現する場合、各桁の数字と対応する数列 ak

+∞
S=Σak2k (ak=0 or 1)
k=-∞

となる。ここで Sは、有限の桁数 n の2進数で「正確に表現できる」とすると

  n
S=Σa-k2-k
k=1

S=2-nΣa-k2n-k
1/S = 2n/Σa-k2n-k

S=0.0000005 を代入すると

2000000 = 2n/Σa-k2n-k
57 = 2n-9 / Σa-k2n-k

ここで:

  • 左辺は自然数であるから、右辺も自然数である必要がある。
  • そのためには、Σa-k2n-k は、 2n-9 の約数である必要がある。
  • 2n-9 には、2の累乗しか約数がないから、 2n-9 の約数は、2m (m=0,1…n-9)と表せる

より

57 = 2n-m-9

と表現できる。 だが、57 は 2の倍数ではない。これは矛盾する。

したがって、0.0000005 は 有限の桁数 n の2進数で「正確に表現できない」


なんか、非常に馬鹿なことを書いた気がするが、気にしないことにしよう。
.net(3) C++(3) Cygwin(12) GAME(3) Groovy(1) Linux(2) Lua(39) Mercurial(13) NYAOS(92) OS/2(7) Oracle(3) Perl(4) Python(22) SKK(4) Windows8(1) album(68) ckw(10) coLinux(1) vim(6) wifky(27) 書評(21) (9)

zetamattaのたいじゅー