RosettaCodeData/Task/Linear-congruential-generator/F-Sharp/linear-congruential-generator.fs
2023-07-01 13:44:08 -04:00

12 lines
362 B
FSharp

module lcg =
let bsd seed =
let state = ref seed
(fun (_:unit) ->
state := (1103515245 * !state + 12345) &&& System.Int32.MaxValue
!state)
let ms seed =
let state = ref seed
(fun (_:unit) ->
state := (214013 * !state + 2531011) &&& System.Int32.MaxValue
!state / (1<<<16))