Random Latin squares: Difference between revisions

Content added Content deleted
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(matrix){ matrix.apply("concat"," ").concat("\n") }</lang>
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");