RosettaCodeData/Task/Linear-congruential-generator/Nim/linear-congruential-generator.nim
2016-12-05 23:44:36 +01:00

13 lines
352 B
Nim

proc bsdRand(seed: int): iterator: int =
var seed = seed
result = iterator: int =
while true:
seed = (1103515245 * seed + 12345) and 0x7fffffff
yield seed
proc msvcrtRand(seed: int): iterator: int =
var seed = seed
result = iterator: int =
while true:
seed = (214013 * seed + 2531011) and 0x7fffffff
yield seed