RosettaCodeData/Task/Linear-congruential-generator/F-Sharp/linear-congruential-generator.fs

13 lines
362 B
Forth
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
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))