1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| import random
import numpy
def nbroccurences (grille,chiffre,i,j) :
imini = i - (i%3)
jmini = j - (j%3)
compteur=0
if grille[i][j]==chiffre:
compteur = -3 #on ne compte pas wij
for k in range (0,9) : #compte pour i donné (colonne)
if grille[i][k] == chiffre :
compteur = compteur +1
for k in range (0,9): #compte pour j donné (ligne)
if grille [k][j] == chiffre :
compteur = compteur + 1
for k in range(imini, imini+3): #compte dans la sous-grille
for z in range(jmini, jmini +3) :
if grille[k][z] == chiffre :
compteur = compteur +1
return compteur
def fonctioneconomique (w):#score
a = 0
for i in range (0,9):
for j in range (0,9):
a = a + nbroccurences(w,w[i][j],i,j) #formule du polycopié
return 0.5*a |
Partager