Pseudo-random numbers/Middle-square method: Difference between revisions

simplify
(add OCaml)
(simplify)
Line 645:
=={{header|OCaml}}==
<syntaxhighlight lang="ocaml">let random_seq seed =
let next x = x * x / 1_0001000 mod 1_000_0001000_000 in
Seq.iterate next (next seed)
 
(* test code *)
let () =
random_seq 675248 |> Seq.take 5 |> Seq.iter (Printf.printf " %u")</syntaxhighlight>
let print_first5 sq =
sq |> Seq.take 5 |> Seq.map string_of_int
|> List.of_seq |> String.concat " " |> print_endline
in
print_first5 (random_seq 675248)</syntaxhighlight>
{{out}}
<pre> 959861 333139 981593 524817 432883</pre>
 
=={{header|Perl}}==
Line 718 ⟶ 714:
def random():
global seed
sseed = int(str(seed ** 2).zfill(12)[3:9])
while len(s) != 12:
s = "0" + s
seed = int(s[3:9])
return seed
for i_ in range(0,5):
print(random())
</syntaxhighlight>
559

edits