Delphi互換の擬似乱数生成コード
ちょっと必要になったのでDelphi互換の擬似乱数を生成するプログラムを書いた。
Linear congruential generator - Wikipediaを参考にした。
class DelphiRandom: def __init__(self, seed=0): self.seed = seed def __call__(self, max): self.seed = (self.seed * 134775813 + 1) & 0xFFFFFFFF result = (self.seed * max) & 0xFFFFFFFFFFFFFFFF return result >> 32