From 26c490f404731d053a6205719b6246502c07b449 Mon Sep 17 00:00:00 2001 From: Patrick Simianer Date: Sat, 14 Jun 2014 16:46:27 +0200 Subject: init --- algorithms/sudoku.py | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100755 algorithms/sudoku.py (limited to 'algorithms/sudoku.py') diff --git a/algorithms/sudoku.py b/algorithms/sudoku.py new file mode 100755 index 0000000..1fa1824 --- /dev/null +++ b/algorithms/sudoku.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python2 + + +block = [ [1, 2, 3], + [1, 2, 3], + [1, 2, 3] +] + +print "bs" +sums = [] +for i in [0,1,2]: + sumh = 0 + sumv = 0 + for j in [0,1,2]: + sumh += block[i][j] + sumv += block[j][i] + print "horiz %d, vert %d"%(sumh, sumv) + sums += [sumv, sumh] + +if sum(sums) != 6*9: print "ohoh" + +# --- + +# 0 1 2 +s = [ [1, 2, 3, 4, 5 ,6, 7, 8, 9], #00 01 02 03 04 05 06 07 08 + [1, 2, 3, 4, 5, 6, 7, 8, 9], #10 11 12 13 14 15 16 17 18 + [1, 2, 3, 4, 5, 6, 7, 8, 9], #20 21 22 23 24 25 26 27 28 + + # 3 4 5 + [1, 2, 3, 4, 5, 6, 7, 8, 9], #30 31 32 33 34 35 36 37 38 + [1, 2, 3, 4, 5, 6, 7, 8, 9], #40 41 42 43 44 45 46 47 48 + [1, 2, 3, 4, 5, 6, 7, 8, 9], #50 51 52 53 54 55 56 57 58 + + [1, 2, 3, 4, 5, 6, 7, 8, 9], + [1, 2, 3, 4, 5, 6, 7, 8, 9], + [1, 2, 3, 4, 5, 6, 7, 8, 9] + ] + +""" +0 1 2 +2 3 4 +4 5 6 + + +0 1 2 3 4 5 6 7 8 +1 2 3 4 5 6 7 8 9 +2 3 4 5 6 7 8 9 10 + +3 4 5 6 7 8 9 10 11 +4 5 6 7 8 9 10 11 12 + + +i = 0 1 2 => 0 1 2 +i = 3 4 5 => 3 4 5 +i = 6 7 8 => 6 7 8 + +j = 0 1 2 => 0 3 6 +j = 3 4 5 => 1 4 7 +j = 6 7 8 => 2 5 8 + + +i=0 + j=0 1 2 3 4 5 6 7 8 9 +i=1 + j=1 2 3 4 5 6 7 8 8 9 +""" + +blocksums = [0 for i in range(0,9)] +third = 0 +block = 0 +for i in range(0,9): + sumh = 0 + sumv = 0 + if i > 0 and i%3 == 0: + third += 1 + block = third*3 + for j in range(0,9): + if j > 0 and j%3 == 0: + block += 1 + print "%d %d, %d"%(i,j,block) + sumh += s[i][j] + sumv += s[j][i] + blocksums[block] = s[i][j] + sums += [sumh, sumv] + print "---" + +sums += blocksums + +if sum(sums) != 45*len(sums): print "ohoh" + -- cgit v1.2.3