Nombres aléatoires en informatique

Bonjour à tous,

Tout d'abord je vous souhaite à tous, par avance, un joyeux noel :-)

J'ai quelques petites questions concernant la façon dont sont générés les nombres aléatoires en informatique et plus précisément :
-> Dans une calculatrice (est ce que ça fait appel à un processeur, à un systeme électrique ?)
-> Dans un logiciel (comme Excel par exemple)
-> Est ce qu'il existe une formule mathématique ?
-> Que signifie le terme pseudo-aléatoire ?

merci d'avance pour votre aide

- T'as pas vu Chloraine ?
- C'est qui Chloraine ? - Ah ! Ah ! Ah !

13 réponses

  1. Modérateur
    Et pour compléter:

    Tout nombre généré par un programme ne peut pas être aléatoire, mais seulement pseudo-aléatoire.
    (C'est à dire qu'il a l'apparence de l'aléatoire, mais tout programme étant déterministe, ce nombre ne peut pas être aléatoire.)

    Il existe des moyens d'obtenir de vrais nombres aléatoire sur ordinateur, comme par exemple le classique http://www.lavarnd.org/

    En cryptographie, générer des nombres aléatoire de bonne qualité est problématique.
    Il y a même une RFC là dessus:
    http://www.ietf.org/rfc/rfc1750.txt
    5
    1. Bonjour Steelspirit,

      Plus précisément – avec Excel en tout cas – la production d'un nombre aléatoire est le résultat d'un calcul. Un algorithme sort un Nième numéro à partir de la valeur du numéro N-1. De telle sorte que la série peut être toujours la même.
      Pour éviter ça, il est conseillé de faire auparavant un "Randomize", qui produit un premier numéro à partir de l'horloge interne. De cette façon, les résultats sont imprévisibles et aléatoires.

      Il faut comprendre "aléatoire" comme donnant une répartition des résultats identique à un tirage au sort. Il existe des algorithmes - assez compliqués - capables de fournir de telles répartitions.

      Armojax.
      4
      1. bonjour tout le monde,nous on est un peu moins pousser en informatique que vous (on est en première S et on a choisi de prendre l'aléatoire comme sujet),donc est-ce que ça serai possible d'avoir des sites français qui traitent de la même chose ou connaitre les formules pour obtenir du pseudo aléatoire ou des algorythmes avec les explications qui vont avec???merci d'avance!!! ;)
        2
        1. il y a une autre manière assez amusante
          je calcule pi avec n décimales
          je l'exprime en base 2
          il est prouvé que pi en base deux est un nombre régulier
          à partir du jour et heure systeme je choisis le point de départ de ma séquence
          les décimales suivantes de pi seront ensuite choisies par tranche
          égales à la longueur désirée
          puis convertie en decimales en leur appliquant la règle de trois
          qui se rapporte à la grandeur voulue et le nombre correspondant
          en base 10

          autre chose une eéquence est dite pseudo aléatoire sans qu'elle le soit forcément

          si elle produit deux fois la même suite de résultas elle reste aléatoire dans un univers logique puisque la reproduction y est possible
          dans un univers physique cela est impossible des jets successifs
          pile face ne reproduiront pas de façon observabls des résultats identiques

          1
          1. Salut, je sais qu'en matlab (langage de calcul numerique) les nb aleatoires sont tires suivant l'etat du processeur.

            Pseudo-aleatoire car l'aleatoire n'existe pas. On cree de l'aleat suivant une certaine loi de proba donc c'est presque aleatoire
            0
            1. Contributeur
              Salut steelspirit, salut pom...

              Il y a 3 façons d'avoir un nombre aléatoire (ou pseudo aléatoire)

              La première, avoir une liste (vu sur certaines vieille caltoches), la deuxième façons se baser sur un évenement donné et sa probabilité (pseudo aléatoire) comme le tact processeur (avec le risque que le programme tournant deux fois de la même façon donne deux fois le même résultat, mais bon le risque est très faible) ce qui est pseudo aléatoire (la première méthode l'est pas vraiment :-S) et la dernière, sans remettre à une épreuve aléatoire (dé en exemple typique) ce qui est impossible pour un ordinateur :o)

              Il n'existe pas de formule mathématiques, encore heureux :o)

              Qui va en mer pour son plaisir,
              irait en enfer pour ses vacances
              0
              1. :-)
                Merci énormément pour vos lumières (qui tombent tres bien en période de fêtes de fin d'année)

                ça va clouer le bec aux stateux de ma boite qui se vantent de faire de la vrai "Randomisation" comme ils disent ... avec Excel en plus !

                - T'as pas vu Chloraine ?
                - C'est qui Chloraine ? - Ah ! Ah ! Ah !
                0
                1. Modérateur
                  Hello !

                  On peut créer un générateur de nombres pseudo-aléatoires avec un peu d'imagination.

                  Par exemple pour générer 30 nombres entre 0 et 99, on peut faire (en Python):
                  a = 0
                  for i in range(30):
                      a = (a*7531 + 13) % 100
                      print a


                  A chaque fois, je multiplie par 7531, j'ajoute 13 et je récupère le reste de la division entière (%, opération de modulo).

                  C'est simple, et ça marche !:
                  13
                  16
                  9
                  92
                  65
                  28
                  81
                  24
                  57
                  80
                  93
                  96
                  89
                  72
                  45
                  8
                  61
                  4
                  37
                  60
                  73
                  76
                  69
                  52
                  25
                  88
                  41
                  84
                  17
                  40
                  0
                  1. slt à tous, cool

                    ce topic tombes à point et j'aurais besoin de vos lumiére, justement moi je joues à jeux vidéo ou tu peu crée des objets qui ont un dés variable, dites caractéristque qu'on nomme intelligence , sagesse, chance etc...

                    ex: un objet peu avoir comme base aléatoire

                    11 à 15 en intel
                    11 à 15 en chance

                    Pour crée cette objet, on apportes des ressources bois et minerais et des pierres précieuses "surtout" dans un atélier, l'artisant mets la recette et "combine" le tous pour crée cette objet
                    dans le jeux il y as enormement d'objet et dernierement un joueur ces plaint d'avoir crée quattre fois l'objets à suivre avec le même nombre en force, coups critiques, et augmentation de dommage sur cette objet, est ce possible?

                    21 à 40 en force
                    3 à 5 aux coups critiques
                    5 à 6% (augmentes les dommages)
                    51 à 100 iniatiative
                    0
                    1. Bonjour, comment on peut inclure la formule de sebsauvage dans Excel s'il vous plait?
                      (30 nombres aléatoires compris entre 0 et 99 ou 10 et 50...)

                      a = 0
                      for i in range(30):
                          a = (a*7531 + 13) % 100
                          print a


                      Merci :-)
                      0
                      1. bon à savoir ça !
                        ça vaut le coup de faire des tests comparatifs !

                        merci seb pour toutes ces infos !

                        - T'as pas vu Chloraine ?
                        - C'est qui Chloraine ? - Ah ! Ah ! Ah !
                        -1