【Perl】初心者コーナー Part19
■ このスレッドは過去ログ倉庫に格納されています
0062nobodyさん
03/01/11 23:05ID:???いやあのそのどのこの、srand を2回以上やっても(以下略^^;)
> if ($$ % 2 == 0) { srand(time); }
> if ($$ % 2 == 1) { srand($$); }
> #↑1づつ増えるた時に困るのだから、奇数か偶数によって変える。
1秒間に3回以上アクセスがあると、$$%2 == 0 の時は重複しまつ。ので却下(^-^*)
そもそも、time ^ $$ に問題があるので、この部分をえろえろと変えてみればどないでし?
例えば・・・
my $pid = $$;
srand((time & 0xFFFF) ^ (($pid << 8) | ($pid & 0x00FF) ^ 0xFFFF));
とか。
(65536通りの種。同位置時刻に複数アクセスがあっても、PIDを奇数と偶数バイトを入れ替えてからビット反転しているので、連続した種は256以上のアクセスが来たとき以外は出てこない。ん?あってるのか?)
ところでPerlに、ビットのローテートできる演算子ってあるのかな?無いのかな?
■ このスレッドは過去ログ倉庫に格納されています