Forgot to shuffle the num[] array! That was probably introducing
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Mon, 19 Feb 2007 19:38:00 +0000 (19:38 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Mon, 19 Feb 2007 19:38:00 +0000 (19:38 +0000)
some really subtle probabilistic bias in the generated latin squares.

git-svn-id: svn://svn.tartarus.org/sgt/puzzles@7302 cda61777-01e9-0310-a592-d414129be87e

latin.c

diff --git a/latin.c b/latin.c
index 22488a7..2d6ae74 100644 (file)
--- a/latin.c
+++ b/latin.c
@@ -1092,6 +1092,7 @@ digit *latin_generate(int o, random_state *rs)
        for (j = 0; j < o; j++)
            col[j] = num[j] = j;
        shuffle(col, j, sizeof(*col), rs);
+       shuffle(num, j, sizeof(*num), rs);
        /* We need the num permutation in both forward and inverse forms. */
        for (j = 0; j < o; j++)
            numinv[num[j]] = j;