Nombre aleatoire SANS rand

Résolu
owengas Messages postés 26 Statut Membre -  
fiddy Messages postés 11653 Statut Contributeur -
Bonjour,
Je cherche a obtenir un nombre aleatoire entre 1 et 4 SANS utiliser la fonction random .

Une petite idée ?


3 réponses

fiddy Messages postés 11653 Statut Contributeur 1 847
 
Bonjour,

Tu peux utiliser la suite suivante
Un+1 = ( 1103515245 * Un + 12345 ) % 2147483647
Pour U0, tu peux prendre time(NULL); et voilà.
A chaque calcul, tu auras un nombre pseudo aléatoire.
C'est le générateur utilisé par Unix d'ailleurs.
1
Hxyp Messages postés 401 Date d'inscription   Statut Membre Dernière intervention   54
 
Bonjour,
Il vous faut une fonction qui génère un nombre différent à chaque appel de celle-ci comme le fait rand, ce n'est "aléatoire" que lorsqu'on y ajoute une valeur extérieur par exemple le temps avec time(NULL).
Pour que la fonction garde le nombre utilisez une variable static exemple :
int monrand(){
    static unsigned int n=1;
    n=n+5;
    return n;
}

à chaque appel de cette fonction n va s'incrémenter de 5 :
n=6
n=11
n=16
etc.
à vous de créer une formule pour remplacer n+5 par exemple en faisant un mix avec le temps ?
puis vous pourrez l'utiliser comme rand() : monrand()%4+1
0
owengas Messages postés 26 Statut Membre
 
super merci beaucoup d'avoir pris du temps pour me repondre, c'est chouette

des bises
0