私は、コイントスと生成実行のモンテカルロ型シミュレーションに使用する LCG 関数を Python で作成しています。私が直面している問題は、乱数のリストを生成すると、奇数と偶数が交互になるように数値がパターン化されることです。それが LCG 関数自体の特性なのか、数値の生成方法の間違いなのかはわかりません。
これが私のコードです:
def seedLCG(initVal):
global rand
rand = initVal
def lcg():
a = 1140671485
c = 128201163
m = 2**24
global rand
rand = (a*rand + c) % m
return rand
seedLCG(1)
for i in range(10):
print lcg()
返される値:
10581448
11595891
1502322
14136437
11348076
1403015
9622582
11013417
11529808
15836891
int と long は Python によって必要に応じて交換されるため、オーバーフローとサイズについて心配する必要はないと思います。