とみたです。

rand() の引数が 0x40000000 以上だと、プログラムを実行する度に同じ値を返
してしまうようです。

Solaris7/SPARC でも Linux でも同じでした。

% ruby -v
ruby 1.4.2 (1999-09-17) [sparc-solaris2.7]
% ruby -e 'srand; p rand(0x3fffffff)'
641753024
% ruby -e 'srand; p rand(0x3fffffff)'
852197884
% ruby -e 'srand; p rand(0x3fffffff)'
567788650
% ruby -e 'srand; p rand(0x40000000)'
601679565
% ruby -e 'srand; p rand(0x40000000)'
601679565
% ruby -e 'srand; p rand(0x40000000)'
601679565

% ruby -v
ruby 1.4.2 (1999-09-17) [i686-linux]
% ruby -e 'srand; p rand(0x3fffffff)'
193222134
% ruby -e 'srand; p rand(0x3fffffff)'
969406916
% ruby -e 'srand; p rand(0x3fffffff)'
452005373
% ruby -e 'srand; p rand(0x40000000)'
305833052
% ruby -e 'srand; p rand(0x40000000)'
305833052
% ruby -e 'srand; p rand(0x40000000)'
305833052

rand 関係は詳しくないので変なこと聞いてたらごめんなさい。

--
とみたまさひろ <tommy / tmtm.org>