Nombres aléatoires en informatique

steelspirit Messages postés 275 Date d'inscription   Statut Membre -  
 Cedrique30 -
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. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    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
  2. Armojax
     
    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
  3. Rio
     
    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
  4. random Messages postés 1612 Statut Membre 155
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. pom
     
    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
  7. teebo Messages postés 33585 Date d'inscription   Statut Contributeur Dernière intervention   1 797
     
    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
  8. steelspirit Messages postés 275 Date d'inscription   Statut Membre 80
     
    :-)
    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
  9. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    Tiens donc... en cherchant un peu, il semble que Intel ait équipé certains de ses chipsets de vrais générateurs de nombres aléatoires !

    http://www.cryptography.com/resources/whitepapers/IntelRNG.pdf

    ça concerne les chipsets 810, 815, 830 et 845G.

    Et intel fourni même un driver pour accéder à ce RNG.
    http://www.intel.com/design/software/drivers/platform/security.htm
    0
  10. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    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
  11. micado
     
    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
  12. Cedrique30
     
    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
  13. steelspirit Messages postés 275 Date d'inscription   Statut Membre 80
     
    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