A voir également:
- Fonction python qui ne fonctionne pas
- Fonction si et - Guide
- Citizen code python avis - Accueil - Outils
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
7 réponses
Utilisateur anonyme
17 juin 2022 à 15:51
17 juin 2022 à 15:51
Bonjour
En Python, l’indentation est primordiale, or par défaut le site ne la conserve pas.
Pour la conserver il faut utiliser les balises de code. Voir ce petit tuto https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
On pourra commencer à essayer de t’aider quand tu auras reposté correctement ton code.
En Python, l’indentation est primordiale, or par défaut le site ne la conserve pas.
Pour la conserver il faut utiliser les balises de code. Voir ce petit tuto https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
On pourra commencer à essayer de t’aider quand tu auras reposté correctement ton code.
#faire un nouveau plot selon la proportion b=0 r=0 ini=1 while ini!=0: for i in range(0,99): for j in range(0,99): if matpr[i,j]>voisins: ini=0 else: for i in range(0,99): for j in range (0,99): if mat[i,j]>0: if matpr[i,j]<voisins: if mat[i,j]==1: mat[i,j]==0 b+=1 elif mat[i,j]==2: mat[i,j]==0 r+=1 while b>0 or r>0 : a=rd.randint(0,99) d=rd.randint(0,99) if mat[a,d]==0: c=rd.randint(1,2) if c==1 and b>0: mat[a,d]=1 b=b-1 elif c==2 and r>0: mat[a,d]=2 r=r-1 for i in range (0,100): for j in range (0,100): if mat[i,j]==1: plt.plot(i,j,color="blue",marker=".") plt.xlim(0,101) plt.ylim(0,101) elif mat[i,j]==2: plt.plot(i,j,color="red",marker=".") plt.xlim(0,101) plt.ylim(0,101) plt.pause(0.25)
Voilà, désolée pour les tentatives ratées avant la bonne forme
J'ai l'impression d'avoir fait trop complexe avec trop de boucle. Du coup mon programme est très lent, il avance mais est très lent.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
17 juin 2022 à 18:24
17 juin 2022 à 18:24
Je ne suis pas sûr de bien comprendre ton énoncé, et je n'ai pas analysé ton code, dès fois que ça m'induise en erreur.
Ensuite l'idée de nombre minimum de voisins de même couleur, c'est étonnant non ? , supposons le cas (2),
Quoiqu'il en soit à partir de 4 ça risque de pédaler longtemps avant de faire une grille qui marche.
une proportion d'individus rouges (le reste est bleu), là OK, par exemple, il doit y avoir 30% de rouges
et un nombre de voisins de même couleur minimum, là déjà c'est moins clair. Déjà, pour ton exercice "voisin", c'est
- (1) une "case" qui a un coté commun (dans ce cas à part en bordure de matrice, 4 voisins par case)
- (2) un case qui a un coté ou un angle commun (dans ce cas à part en bordure de matrice, 8 voisins par case)
- (3) autre, dans ce cas détaille.
Ensuite l'idée de nombre minimum de voisins de même couleur, c'est étonnant non ? , supposons le cas (2),
- Avec minimum de 1 voisin de même couleur, ça marchera tout le temps, il y aura toujours au moins un voisin rouge ou un voisin bleu.
- Avec 2 mini, y'a de forte chances que ça marche tout très souvent, au moins 2 voisins rouges ou 2 voisins bleus, sur 8 voisins c'est assez facile.
- Pour 3, on va y arriver, si la proportion n'est pas trop proche du 50/50.
- Pour 4 ça va commencer à se compliquer surtout si on est à une proportion proche de 50%, ça voudrait dire se rapprocher aléatoirement du damier parfait ce qui n'est pas du tout aléatoire
- Pour 5, ça ne peut fonctionner que si la proportion est déséquilibrée
- Pour 6 encore plus de déséquilibre
- Pour 7 et 8 encore, encore plus de déséquilibre.
Quoiqu'il en soit à partir de 4 ça risque de pédaler longtemps avant de faire une grille qui marche.
"On suppose que l’espace est une surface carrée de 100 unités de côté et on dispose aléatoirement
4000 individus (2000 de chaque population par exemple) dans cet espace, chaque individu occupant
une unité de l’espace (deux individus ne peuvent pas se trouver sur la même unité). On observe
ensuite la dynamique de la population en lui fixant une seule contrainte : chaque individu souhaite
avoir au moins un certain pourcentage de ses voisins de la même population que lui (l’utilisateur
choisira ce seuil). A chaque étape, on passe en revue chaque individu et on le déplace aléatoirement
(à une place libre) si la contrainte individuelle n’est pas satisfaite. Les déplacements sont terminés
lorsque tous les individus ont satisfait cette contrainte.
Le programme sera une fonction (codée en Python) prenant en entrée trois paramètres : la proportion
de la première population (celle de la seconde étant déduite), le pourcentage de voisins relatif à la
contrainte individuelle. "
Ca prend donc en compte les 8 voisins autour (comme un démineur)
4000 individus (2000 de chaque population par exemple) dans cet espace, chaque individu occupant
une unité de l’espace (deux individus ne peuvent pas se trouver sur la même unité). On observe
ensuite la dynamique de la population en lui fixant une seule contrainte : chaque individu souhaite
avoir au moins un certain pourcentage de ses voisins de la même population que lui (l’utilisateur
choisira ce seuil). A chaque étape, on passe en revue chaque individu et on le déplace aléatoirement
(à une place libre) si la contrainte individuelle n’est pas satisfaite. Les déplacements sont terminés
lorsque tous les individus ont satisfait cette contrainte.
Le programme sera une fonction (codée en Python) prenant en entrée trois paramètres : la proportion
de la première population (celle de la seconde étant déduite), le pourcentage de voisins relatif à la
contrainte individuelle. "
Ca prend donc en compte les 8 voisins autour (comme un démineur)
Utilisateur anonyme
17 juin 2022 à 18:59
17 juin 2022 à 18:59
Il y a déjà un point crucial que je n'avais pas compris, la grille n'est pas pleine, 4000 sur 10000.
Ensuite le nombre de voisins d'un individu est de la même population (ou couleur) que lui et donc c'est un peu plus contraint (mais en soit plus logique).
Par contre dans cette partie d'énoncé, je ne vois pas ce qui permet d'affirmer qu'il y a 8 voisins.
Et il manque au moins une dernière information car la fonction doit avoir 3 paramètres et tu n'en cites que 2.
Ensuite le nombre de voisins d'un individu est de la même population (ou couleur) que lui et donc c'est un peu plus contraint (mais en soit plus logique).
Par contre dans cette partie d'énoncé, je ne vois pas ce qui permet d'affirmer qu'il y a 8 voisins.
Et il manque au moins une dernière information car la fonction doit avoir 3 paramètres et tu n'en cites que 2.