Nombre aleatoire SANS rand

Résolu
owengas Messages postés 26 Statut Membre -  
fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Je cherche a obtenir un nombre aleatoire entre 1 et 4 SANS utiliser la fonction random .

Une petite idée ?

3 réponses

  1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   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
  2. 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
  3. owengas Messages postés 26 Statut Membre
     
    super merci beaucoup d'avoir pris du temps pour me repondre, c'est chouette

    des bises
    0