A voir également:
- Binero bloqué
- Code puk bloqué - Guide
- Pavé tactile bloqué - Guide
- Compte gmail bloqué - Guide
- Telephone bloque - Guide
- Comment savoir si on est bloqué sur messenger - Guide
3 réponses
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
20 août 2021 à 11:31
20 août 2021 à 11:31
Bonjour,
...la création de la matrice qui doit se faire ...
tu as essayé quelque chose ?
que sais tu faire en Python?
sais-tu faire une interface graphique ?
...la création de la matrice qui doit se faire ...
tu as essayé quelque chose ?
que sais tu faire en Python?
sais-tu faire une interface graphique ?
Bonjour Phil merci pour ta réponse,
j'ai essayé hier de générer une matrice en random en utilisant numpy:
parents = []
unique_found = False
while not unique_found:
candidate_array = np.random.choice([0, 1], size=(CELL,CELL))
if not any((candidate_array == x).all() for x in parents):
[(i, j) for i, j in enumerate(candidate_array)]
unique_found = True
parents.append(candidate_array)
ca retourne :
[[0 0 0 1 0 1]
[1 0 0 1 1 1]
[0 0 0 0 1 0]
[1 0 0 0 1 0]
[0 1 1 1 1 1]
[0 1 1 0 1 1]]
or ça ne remplis pas les conditions du jeu, j'essaye de trouver un moyen de le faire autrement car, j'ai l'impression que je dois passer par du backtracking pour ça.
si non pour l'interface graphique c'est en pygame pour cela pas de souci :)
j'ai essayé hier de générer une matrice en random en utilisant numpy:
parents = []
unique_found = False
while not unique_found:
candidate_array = np.random.choice([0, 1], size=(CELL,CELL))
if not any((candidate_array == x).all() for x in parents):
[(i, j) for i, j in enumerate(candidate_array)]
unique_found = True
parents.append(candidate_array)
ca retourne :
[[0 0 0 1 0 1]
[1 0 0 1 1 1]
[0 0 0 0 1 0]
[1 0 0 0 1 0]
[0 1 1 1 1 1]
[0 1 1 0 1 1]]
or ça ne remplis pas les conditions du jeu, j'essaye de trouver un moyen de le faire autrement car, j'ai l'impression que je dois passer par du backtracking pour ça.
si non pour l'interface graphique c'est en pygame pour cela pas de souci :)
yg_be
Messages postés
23405
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 décembre 2024
1 557
20 août 2021 à 12:28
20 août 2021 à 12:28
bonjour,
comment ferais-tu pour remplir la matrice de façon aléatoire si tu le faisais sans programme?
une fois que tu auras bien compris cela, tu pourras réfléchir à une méthode pour automatiser cela.
comment ferais-tu pour remplir la matrice de façon aléatoire si tu le faisais sans programme?
une fois que tu auras bien compris cela, tu pourras réfléchir à une méthode pour automatiser cela.
Bonsoir,
Ton code est bien trop simple et ne gère pas les cas de figures, et oui, l'idéal et surtout pour des raisons de performances est d'utiliser du backtracking.
Car sans (j'ai rapidement fait un code à l'arrache), pour une grille de 8x8 ça doit tourner autour des 500 générations en moyenne pour trouver une grille valide, mais ça monte rapidement dans les tours pour les tailles supérieures, parfois plus de 100 000 pour du 12x12... Donc pas viable d'attendre aussi longtemps juste pour faire ça. La contrainte la plus élevée est surtout que le nombre de 0 et 1 doivent être identique dans chaque lignes et colonnes, sinon ça roulerait parfaitement en terme de perfs sans ça.
Ton code est bien trop simple et ne gère pas les cas de figures, et oui, l'idéal et surtout pour des raisons de performances est d'utiliser du backtracking.
Car sans (j'ai rapidement fait un code à l'arrache), pour une grille de 8x8 ça doit tourner autour des 500 générations en moyenne pour trouver une grille valide, mais ça monte rapidement dans les tours pour les tailles supérieures, parfois plus de 100 000 pour du 12x12... Donc pas viable d'attendre aussi longtemps juste pour faire ça. La contrainte la plus élevée est surtout que le nombre de 0 et 1 doivent être identique dans chaque lignes et colonnes, sinon ça roulerait parfaitement en terme de perfs sans ça.
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
20 août 2021 à 16:44
20 août 2021 à 16:44
"Pas plus de deux 0 ou deux 1 consécutifs.
Chaque ligne et chaque colonne contiennent autant de 0 que de 1.
Deux lignes ou deux colonnes ne peuvent être identiques."
Ok, mais comme tu remplis les cases avec des nombres tirés au hasard, remplir les conditions ne peut pas se faire tout seul ...
Chaque ligne et chaque colonne contiennent autant de 0 que de 1.
Deux lignes ou deux colonnes ne peuvent être identiques."
Ok, mais comme tu remplis les cases avec des nombres tirés au hasard, remplir les conditions ne peut pas se faire tout seul ...
yg_be
Messages postés
23405
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 décembre 2024
1 557
20 août 2021 à 19:45
20 août 2021 à 19:45
en gros, il y a deux options:
1) remplir en tenant compte des contraintes
2) faire au hasard, et éliminer les solutions ne répondant pas aux contraintes
tout en sachant que les deux approches peuvent, in fine, donner une distribution différente.
1) remplir en tenant compte des contraintes
2) faire au hasard, et éliminer les solutions ne répondant pas aux contraintes
tout en sachant que les deux approches peuvent, in fine, donner une distribution différente.