[#20227] dyna_vars problem? — Tanaka Akira <akr@...17n.org>

しばらく前から、稀に Ruby が core を吐くという問題を追いかけているので

15 messages 2003/05/19
[#20234] Re: dyna_vars problem? — matz@... (Yukihiro Matsumoto) 2003/05/19

まつもと ゆきひろです

[#20236] Re: dyna_vars problem? — Tanaka Akira <akr@...17n.org> 2003/05/19

In article <1053363181.529491.30320.nullmailer@picachu.netlab.jp>,

[ruby-dev:20174] Re: Numeric#step

From: Tanaka Akira <akr@...17n.org>
Date: 2003-05-06 15:02:54 UTC
List: ruby-dev #20174
In article <20030506.231959.39179140.JCA02266@nifty.ne.jp>,
  Koji Arai <JCA02266@nifty.ne.jp> writes:

> なるほど、そういうものなのですね。2003-05-06 版で、まつもと
> さんにより修正されたようなので最新を試したところ問題なく動作
> するのを確認しました。
>
> $ ./miniruby -ve '1.1.step(1.5, 0.1) {|n| printf("%.20f\n", n) }'
> ruby 1.8.0 (2003-05-06) [i586-linux]
> 1.10000000000000008882
> 1.20000000000000017764
> 1.30000000000000004441
> 1.40000000000000013323
> 1.50000000000000000000

なんとなく、

% ruby -ve '1.1.step(1.4, 0.1) {|n| printf("%.20f\n", n) }'
ruby 1.8.0 (2003-05-06) [i686-linux]
1.10000000000000008882
1.20000000000000017764
1.30000000000000004441
% 

とか、一般には、

% ruby -e '
n = 0
loop {
  e = n / 10.0
  0.upto(n) {|j|
    b = j / 10.0
    k = nil
    b.step(e, 0.1) {|k|}
    printf "%.20f %.20f %.20f\n",b,e,k if (e - k).abs > 0.001
  }
  n += 1
}
'
1.10000000000000008882 1.19999999999999995559 1.10000000000000008882
1.10000000000000008882 1.39999999999999991118 1.30000000000000004441
1.30000000000000004441 1.39999999999999991118 1.30000000000000004441
1.60000000000000008882 1.69999999999999995559 1.60000000000000008882
1.60000000000000008882 1.89999999999999991118 1.80000000000000004441
1.80000000000000004441 1.89999999999999991118 1.80000000000000004441
1.80000000000000004441 2.29999999999999982236 2.20000000000000017764
2.00000000000000000000 2.29999999999999982236 2.20000000000000017764
2.10000000000000008882 2.29999999999999982236 2.20000000000000017764
2.20000000000000017764 2.29999999999999982236 2.20000000000000017764
...

だとか。

epsilon を増やしていくと症状が起きる下限が大きくなっていくので、誤差が
定数で抑えられていないところを epsilon という定数と見積もっている気が
しますね。

減算で桁が落ちてるのかなぁ。
-- 
[田中 哲][たなか あきら][Tanaka Akira]

In This Thread