Prendre au hasard le % d'une population
--maxime--
-
lermite222 Messages postés 9042 Statut Contributeur -
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,
voila je sur une population représenter par un tableau 2D de borne x et y je souhaite prendre 25% des cases du tableau pour faire quelque chose avec.
Ma première idée était la suivante :
fonction toto (tableau) :
Pour i de 1 à x :
Pour j de 1 à y :
p=nb au hasard entre 0 et 100
Si p<=25 : blabla
Sinon : blablabla
Le problème c'est que je n'aurais pas tout a fait 25% de cette manière.
Du coup j'ai pensé à ça :
fonction toto2 (tableau) :
Pour i dans (nbTot//4) (division entière)
a=nb au hasard entre 0 et x
b=nb au hasard entre 0 et y
tableau(a,b)=blabla
Ici j'aurais 25% sauf si je prend plusieurs fois par hasard la ou les mêmes cases du tableau. Donc je souhaiterais savoir comment éviter de reprendre la même cases.
Merci pour votre aide
voila je sur une population représenter par un tableau 2D de borne x et y je souhaite prendre 25% des cases du tableau pour faire quelque chose avec.
Ma première idée était la suivante :
fonction toto (tableau) :
Pour i de 1 à x :
Pour j de 1 à y :
p=nb au hasard entre 0 et 100
Si p<=25 : blabla
Sinon : blablabla
Le problème c'est que je n'aurais pas tout a fait 25% de cette manière.
Du coup j'ai pensé à ça :
fonction toto2 (tableau) :
Pour i dans (nbTot//4) (division entière)
a=nb au hasard entre 0 et x
b=nb au hasard entre 0 et y
tableau(a,b)=blabla
Ici j'aurais 25% sauf si je prend plusieurs fois par hasard la ou les mêmes cases du tableau. Donc je souhaiterais savoir comment éviter de reprendre la même cases.
Merci pour votre aide
A voir également:
- Prendre au hasard le % d'une population
- Prendre une photo avec son pc - Guide
- Prendre une photo avec son mac - Guide
- Comment prendre une capture d'écran sur samsung - Guide
- Prendre mesure avec telephone - Guide
- Prendre le controle d'un pc a distance windows 10 - Guide
2 réponses
Bonjour,
Si au moins ont savait avec quel langage tu veux faire ça.
De plus ton explication n'est pas fort claire.
A+
Si au moins ont savait avec quel langage tu veux faire ça.
De plus ton explication n'est pas fort claire.
A+
Le langage que j'utilise est python. Désolé si ce n'est pas clair mais j'ai indenter mes fonctions et quand j'ai valider tout a été modifier. Je suis d'accord avec toi c'est presque illisible.
Je ne connais rien en python, toutefois ton algo ne sait pas fonctionner, tu aura toujours les 25 premier
Je verrais plutôt ça..
Je verrais plutôt ça..
Tableau de boolean > B(19,4)
Tableau de données TBd(19,4) 'en supposant x=0 à 19 et Y = 0 à 4
Tableau de résulta TBr(24)
Entier (Integer) > TirageX
Entier (Integer) > TirageY
Entier > NB
Tant que NB<25
TirageX = nb au hasard entre 0 et 19
TirageY = nb au hasard entre 0 et 4
Si B(X,Y)=0 > exécute (then)
B(X,Y)=1
TBr(NB) = TBd(X,Y)
NB +=1
Fin Si
Loop