Random Latin squares: Difference between revisions

Content added Content deleted
Line 27: Line 27:
// Generate 2 Random Latin Squares of order 5. Nigel Galloway: July 136th., 2019
// Generate 2 Random Latin Squares of order 5. Nigel Galloway: July 136th., 2019
let N=let N=System.Random() in (fun n->N.Next(n))
let N=let N=System.Random() in (fun n->N.Next(n))
let β=lN2p [|0;N 3;N 2;N 1|] [|0..4|] in Seq.item (N 55) (normLS 5) |> List.map(lN2p [|N 4;N 3;N 2;N 1|]) |> List.permute(fun n->β.[n]) |> List.iter(printfn "%A")
let β=lN2p [|0;N 4;N 3;N 2|] [|0..4|] in Seq.item (N 55) (normLS 5) |> List.map(lN2p [|N 5;N 4;N 3;N 2|]) |> List.permute(fun n->β.[n]) |> List.iter(printfn "%A")
printfn ""
printfn ""
let β=lN2p [|0;N 3;N 2;N 1|] [|0..4|] in Seq.item (N 55) (normLS 5) |> List.map(lN2p [|N 4;N 3;N 2;N 1|]) |> List.permute(fun n->β.[n]) |> List.iter(printfn "%A")
let β=lN2p [|0;N 4;N 3;N 2|] [|0..4|] in Seq.item (N 55) (normLS 5) |> List.map(lN2p [|N 5;N 4;N 3;N 2|]) |> List.permute(fun n->β.[n]) |> List.iter(printfn "%A")
</lang>
</lang>
{{out}}
{{out}}
<pre>
<pre>
let β=lN2p [|0;N 4;N 3;N 2|] [|0..4|] in Seq.item (N 55) (normLS 5) |> List.map(lN2p [|N 5;N 4;N 3;N 2|]) |> List.permute(fun n->β.[n]) |> List.iter(printfn "%A")
[|1; 3; 2; 4; 5|]
[|4; 5; 3; 2; 1|]
[|5; 3; 1; 4; 2|]
[|2; 4; 1; 5; 3|]
[|1; 4; 5; 2; 3|]
[|3; 2; 5; 1; 4|]
[|4; 1; 2; 3; 5|]
[|5; 1; 4; 3; 2|]
[|2; 5; 3; 1; 4|]
[|3; 2; 4; 5; 1|]


[|2; 3; 4; 1; 5|]
[|4; 1; 2; 5; 3|]
[|3; 2; 5; 4; 1|]
[|3; 5; 1; 2; 4|]
[|5; 4; 1; 2; 3|]
[|2; 4; 5; 3; 1|]
[|1; 5; 2; 3; 4|]
[|1; 2; 3; 4; 5|]
[|4; 1; 3; 5; 2|]
[|5; 3; 4; 1; 2|]
</pre>
</pre>