Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1906 connectés 

  FORUM HardWare.fr
  Programmation
  C

  aléatoire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

aléatoire

n°700998
paf84
Posté le 16-04-2004 à 13:21:30  profilanswer
 

comment puis je faire pour choisir des nombres entre 1 et 15 sachant que je ve pas qu cela se répete et que en plus je ve que tous les nombres soit pri!
 
 
c pour remplir un tableau de facon aléatoire...
je ne sais pas si c tres asstucieux..
merci beaucoup de votre aide

mood
Publicité
Posté le 16-04-2004 à 13:21:30  profilanswer
 

n°701000
jagstang
Pa Capona ಠ_ಠ
Posté le 16-04-2004 à 13:27:17  profilanswer
 

ce sujet a déjà été abordé.
 
En gros il y a 2 approches.
 
- Tu tires un No, si il n'a pas été déjà tiré, tu l'enregistre s et tu continue jusqu'à ce que tout a été tiré.
 
Problème, plus on avance, moins on a de chance de tirer les derniers numéros pas encore tirés. De plus, il faut parcourir vecteur etc...  
 
La meilleure solution.
 
Tu construit un vecteur dans l'ordre  
 
v[0]=1 ;
v[1]=2 ;
...
v[14]=5 ;
 
Maintenant, tu tires au hasard 2 indices de tableaux. Tu inverses les valeurs contenues à ces indics. Tu répète l'opération un bon nombre de fois.
 
Ton vecteur est mélangé
 

n°701004
boulax
Inserer phrase hype en anglais
Posté le 16-04-2004 à 13:29:39  profilanswer
 

Tu génères un nombre pseudo aléatoire entre 0 et 1, tu multiplies par 15 et tu choppes la partie entière et tu l'associe au nombre non encore sorti le plus proche jusqu'a ce que tu aies eu les 15.


---------------
Posté depuis des chiottes, sales. Me gusta.
n°701018
gilou
Modérateur
Modzilla
Posté le 16-04-2004 à 13:38:50  profilanswer
 


Tu crées un tableau a 16 cases. Chaque case est initialisée a 0 sauf la 16e a -1 (tes valeurs a ranger sont entre 1 et 15)
Au depart, ta case courante est la premiere.
Au depart i vaut 15.
On a un algo en boucle decroissante:
Pour mettre la valeur i dans une case, tu procedes ainsi:
Tu recuperes une valeur aléatoire: int rand(void) (ou autre generateur d'entier aleatoire). Tu recuperes le reste r de la division valeur aleatoire par i, et tu avances de r+1 cases inoccupées (test si le contenu est a 0. S'il est a -1, tu reviens a la premiere case).
Tu ranges la valeur i dans la case.
Tu decrementes i. s'il est a 0, c'est fini, sinon on repart pour un tour de boucle.
 
Bon, c'est le premier truc qui m'est passe par la tete, il y a sans doute moyen d'optimiser.
 
A+,

n°701029
gilou
Modérateur
Modzilla
Posté le 16-04-2004 à 13:47:31  profilanswer
 

Fermé pour cause de double emploi newbie style http://forum.hardware.fr/hardwaref [...] 9573-1.htm
A+,


Aller à :
  FORUM HardWare.fr
  Programmation
  C

  aléatoire

 

Sujets relatifs
Variable aleatoirefaire une suite aleatoire de 10 nombres compris entre 0 et 50 en .bat
nombre aléatoire[PHP][newbie] Génération aléatoire de nombres différents 2 à 2 ?
[PHP-SQL] selection aleatoire dans une bdd avec un wheregeneration aleatoire de terrain
Ordre des noms de repertoire aléatoire ?[C++] [newbiz] Fonction de tirage aléatoire ?
[PHP/SQL] Erreur aléatoire????!!!!!!temps de generation aléatoire
Plus de sujets relatifs à : aléatoire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR