2005-06-08 プールを極力使わない擬似乱数アルゴリズム Program 備忘録 テクニック 弾幕シューティングを作るとき、リプレイをさせる為、ランダム移動系の弾には擬似乱数を使うのだが、弾ひとつひとつにMT法乱数クラスを割り当てたら*1メモリが明らかに足りなくなる。 だって最高1万個のエレメントに対してですよ。MT法10000*4*32 byte ... 泣くしかない。*2って、事でプールを極力使わない擬似乱数アルゴリズムをソース込みで列挙しようと思うわけだ。 別にC言語標準の線型合同法でもいいんじゃない?ひとつの要素に対して4byteだけだし。いや、ほかにも実装とかアルゴリズムとかあるはずだ。試行錯誤してみよう。 線型合同法 well1024a法書きかけ ・・ 乱数参考サイト http://jug7.com/cgi-bin/random.html *1:一般的なMT法の実装は擬似乱数値をプールする *2:libBulletMLを使うため、安全策として弾一つ一つに乱数の種を設定しておくからである。普通の実装ならば弾用のMT法乱数オブジェクトひとつで事足りるのだが・・・