Random Latin squares: Difference between revisions
Content added Content deleted
m (→{{header|zkl}}: rewrite) |
m (→{{header|zkl}}: tweak) |
||
Line 451: | Line 451: | ||
=={{header|zkl}}== |
=={{header|zkl}}== |
||
<lang zkl>fcn randomLatinSquare(n,symbols=[1..]){ |
<lang zkl>fcn randomLatinSquare(n,symbols=[1..]){ //--> list of lists |
||
if(n<=0) return(T); |
if(n<=0) return(T); |
||
square,syms := List(), symbols.walker().walk(n); |
square,syms := List(), symbols.walker().walk(n); |
||
Line 458: | Line 458: | ||
T.zip(square.shuffle().xplode()).shuffle(); |
T.zip(square.shuffle().xplode()).shuffle(); |
||
} |
} |
||
fcn rls2String( |
fcn rls2String(square){ square.apply("concat"," ").concat("\n") }</lang> |
||
<lang zkl>foreach n in (T(1,2,5)){ randomLatinSquare(n) : rls2String(_).println("\n") } |
<lang zkl>foreach n in (T(1,2,5)){ randomLatinSquare(n) : rls2String(_).println("\n") } |
||
randomLatinSquare(5, ["A".."Z"]) : rls2String(_).println("\n"); |
randomLatinSquare(5, ["A".."Z"]) : rls2String(_).println("\n"); |