RosettaCodeData/Task/Pseudo-random-numbers-Middle-square-method/Miranda/pseudo-random-numbers-middle-square-method.miranda
2023-07-01 13:44:08 -04:00

11 lines
304 B
Text

main :: [sys_message]
main = [Stdout (lay (map show numbers))]
where numbers = take 5 (randoms 6 seed)
seed = 675248
randoms :: num->num->[num]
randoms sz = tl . iterate (msq sz)
msq :: num->num->num
msq sz seed = sq div (10^(sz div 2)) mod 10^sz
where sq = seed^2