夕輝と

2006年12月5日 日常+α
意味のわからない人は華麗にスルーしる。
 
 
 
 
線形合同法、或いは何かの下位互換だとしても酷い。
メルセンヌツイスター級を使えとは言わんが、
つーか、ツイスターはフリーなんだから使っても良いんだけど
(んーここ曖昧。商用はフリーとはいかんかったけか)
てかさプロがrand()と同じクラスなんか使うなよ。

それに、なぜ、
各入力待機の空き時間に乱数回さないのか。
待機ループで無意味に一回乱数呼ぶだけで
かなり疑似乱数から抜けるのに。

いや、各ターンの開始時に時間依存の回数分だけ
空回しするだけでもいいのに。
 
 
 
頭悪すぎる。。。

正直なところ、オレのがナンボかマシなん組めるかもよ!

 
 
 
解説。

低クラスの疑似乱数(たとえばC言語のrand())は
必ず、発生した乱数の最下位ビットが0101010101と交互になる。
(つまり、偶数と奇数が交互に発生する)
当然、こんなもんは初歩の初歩なんだが、
それを知らずに二人用スゴロクのサイコロを造ると、

発生した乱数の6の剰余を取って1を加えるのが
サイコロの目の出し方の基本。

偶数の数字から偶数の剰余を取ったら必ず偶数になり
奇数の数字から偶数の剰余を取ったら必ず奇数となる。

つまり、二人用スゴロクだと

A:偶数偶数偶数偶数偶数偶数偶数偶数偶数偶数偶数
B:奇数奇数奇数奇数奇数奇数奇数奇数奇数奇数奇数

と片方は1.3.5.のみ、もう片方は2.4.6.のみとなり
当然偶数しか出ない方が圧倒的有利となる。

これを避けるには、メルセンヌツイスターなどの
高級な疑似乱数発生関数を用いるわけだが、
自分で素組みすると、当然のことながら敷居は高い。
もちろんプロならプロらしい仕事をしる!と言いたいが、
まあ無理でもいろんな方法がある。

サイコロを振る前に、
乱数を時間依存(現在時刻の秒の値など)の回数だけ
発生させるだけで簡単にランダムに近づける。

それすらも怠ったということは無知きわまりない。
 
 
というわけだ。プロの仕事とは思えない。

以下、面白かったコピペ
リプレイに早送りがある。そう思っていた時期が私にもありました。

戦闘時のもっさりに俺の怒りは有頂天になった。

それよりこのカクカクを見てくれ。こいつをどう思う?

ヤバイ、オン対戦ヤバイ。何がヤバイって対戦出来ない。

スクイーズでフリーズした。何を言ってるかわからねえと思うが(ry

どう見てもずっと私のターンです。本当にありがとうございました。

見える!私にもダイスが読めるぞ!←今ここ。

 
 
 
とりあえず、ダイス上限が奇数のマップのみプレイしる!

コメント

最新の日記 一覧

<<  2025年6月  >>
1234567
891011121314
15161718192021
22232425262728
293012345

お気に入り日記の更新

最新のコメント

日記内を検索