Je l'ai posté plus tôt, mais il est possible que le lien ne respecte pas les règles, alors je l'ai supprimé et republié. J'ai également essayé de corriger le point signalé. La dernière fois, je l'ai réalisé en utilisant 3 instructions while, mais je l'ai changé en instruction for. J'ai reçu des conseils pour utiliser .numpy, donc j'aimerais comprendre et essayer.
target1 = [[1,2,3],
[2,3,1],
[3,1,2]]
target2 = [[1,1,1],
[2,2,2],
[3,3,3]]
target3 = [[1,2,3],
[2,3,1],
[1,3,2]]
target4 = [[1,2,3,4,5],
[2,3,4,5,1],
[3,4,5,1,2],
[4,5,1,2,3],
[5,1,2,3,4]]
def check(target):
n = len(target)
digit = 1
for i in range(0, n): #Le nombre d'éléments est de 3, soit 0 à 3, c'est-à-dire 0.,1,2
row_count = 0
col_count = 0
for j in range(0, n):
if target[i][j] == digit:
row_count += 1
if target[j][i] == digit:
col_count += 1
if row_count != 1 or col_count != 1:
return False
digit += 1
return True
def test():
print('Dans le cas de quelques formes allemandes')
assert check(target1) == True
print('Si le contenu de la liste est tous au même numéro')
assert check(target2) == False
print('Si seule la dernière liste ne répond pas aux critères')
assert check(target3) == False
print('Système normal dans le cas de 5 × 5')
assert check(target4) == True
print('test ok')
test()
Recommended Posts