Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Génération du "hasard"



  1. #1
    Atefvinc

    Génération du "hasard"


    ------

    Bonjour, j'ai une petite question qui me trotte dans la tête depuis un bon bout de temps :

    Comment est généré le "hasard"* dans un PC, une calculette etc.
    Si je met 'hasard' entre guillemets, c'est une question de théorie... Je doute que le hasard généré par les machines soient un hasard "pur".

    Voilou, j'espère m'être bien exprimé.
    Vinz.

    -----
    While(savoir+intelligence < einstein)
    learn(++);

  2. #2
    Patrick

    Re : Génération du "hasard"

    Salut

    Sur PC et sur matériel électronique c'est du pseudo-aléatoire. Il existe des générateurs pseudo aléatoire sur microcontroleur.

    Pour le fonctionnement je te renvoi sur le calcul que l'on peut trouver en C (rand ou srand). Sinon l'aléatoire existe : le bruit par exemple.

    Bonne fin d'après midi

  3. #3
    Jack
    Modérateur

    Re : Génération du "hasard"

    exact,

    le problème de ces codes c'est que s'ils sont initialisés avec la même valeur au départ, il fourniront toujours la même séquence.

    D'où l'intérêt de modifier cette valeur de départ (semence). Le plus facile est d'utiliser le temps courant. Dans un PC par exemple, il est facile de récupérer la valeur de l'horloge temps réel pour initialiser la séquence.

    Il n'empêche que tous ces codes pseudo aléatoires sont cycliques. Plus le nombre de bits utilisés par le code est important et plus la période de répétition sera longue.

    A+

  4. #4
    Atefvinc

    Re : Génération du "hasard"

    Citation Envoyé par Patrick
    Pour le fonctionnement je te renvoi sur le calcul que l'on peut trouver en C (rand ou srand).
    Mais ces fonction sont crées à partir du hasard déjà généré, et ils ne disent pas comment c'est fait

    Citation Envoyé par Patrick
    Sinon l'aléatoire existe : le bruit par exemple.
    Là je suis pas d'accord : Le bruit n'est que la résultante de phénomènes physiques.
    Si tu voulais parler de comment on pourrait générer le hasard dans un pc, je pense pas qu'il y ai un mini detecteur de son dans la tour... enfin je sais pas

    Citation Envoyé par Jack
    Le plus facile est d'utiliser le temps courant. Dans un PC par exemple, il est facile de récupérer la valeur de l'horloge temps réel pour initialiser la séquence.
    Ah bon ? des programmes font ça ? C'est pas un peu risqué au niveau sécurité etc. ?
    While(savoir+intelligence < einstein)
    learn(++);

  5. A voir en vidéo sur Futura
  6. #5
    Jack
    Modérateur

    Re : Génération du "hasard"

    où est le risque?

    Mais je viens de me rendre compte de ton âge.
    T'es-tu déjà renseigné sur la possibilité de créer des séquences pseudo aléatoires à l'aide de polynômes de codage?

    En ce qui concerne la notion de bruit, il ne faut pas la confondre avec le son.

    A+
    Dernière modification par Jack ; 30/03/2005 à 21h49.

  7. #6
    Atefvinc

    Re : Génération du "hasard"

    Citation Envoyé par Jack
    où est le risque?
    Et bien ça veut dire que le hasard est prévisible. Si des clés de sécurité sont crées automatiquement, ptet que c'est possible, si a des renseignements supplémentaires sur le programme... enfin bref je pense que ceux qui font ça se sont renseigné sur les risques avant

    Citation Envoyé par Jack
    Mais je viens de me rendre compte de ton âge.
    T'es-tu déjà renseigné sur la possibilité de créer des séquences pseudo aléatoires à l'aide de polynômes de codage?
    Quoi qu'est-ce qu'il a mon âge ? mdr
    J'ai déjà fais un site qui générait des clés de sécurité aléatoires, mais je ne pense pas que c'est ce dont du parles :
    Est-ce que tu parlerai des mots que qu'on doit taper sur des sites populaires pour s'inscire ? (boites mails etc.)
    Si oui ou si non, tu pourrai m'en dire plus ?

    Citation Envoyé par Jack
    En ce qui concerne la notion de bruit, il ne faut pas la confondre avec le son.
    Oups la gaffe, ça correspond à quoi le bruit ? (!=son)

    Merci de vos réponses
    While(savoir+intelligence < einstein)
    learn(++);

  8. #7
    Jack
    Modérateur

    Re : Génération du "hasard"

    Et bien ça veut dire que le hasard est prévisible
    Quoi de plus aléatoire que le moment où tu vas lancer ta séquence. Ca n'est pas déterministe.

    Quoi qu'est-ce qu'il a mon âge ?
    Rien de péjoratif la dedans. je me disais simplement que l'étude de l'algèbre de boole et en particulier l'étude des polynômes dans cette algèbre ne devaient pas être étudiés avant un cycle d'études supérieures.


    Oups la gaffe, ça correspond à quoi le bruit ? (!=son)
    pour faire simple, prends un téléviseur et retire l'antenne. La 'neige' que tu vois à l'écran est l'image d'un signal de bruit, de parasites si tu veux. Statistiquement on n'est pas capable de déterminer ou se situeront les points blancs à l'écran à un moment donné.

    Pour faire plus compliqué, mais pas trop, un bruit en électronique peut être caractérisé par ses caractéristiques spectrales.
    On parle par exemple de bruit rose, de bruit blanc, de bruit gaussien, etc.

    A+

  9. #8
    Patrick

    Re : Génération du "hasard"

    Salut

    Merci Jack, effectivement je parlai bien du bruit electronique. Mais de toute façon à partir du moment ou tu génères de l'aléatoire avec un PC ou un micro c'est forcément du pseudo aléatoire et tu peux donc retrouver la redondance dans ce système : Mais au bout de combien de temps ? 10ans, 20ans, 1000ans ?

    Pour srand() ou rand(), c'est vrai que j'ai oublier de préciser qu'il fallait utiliser l'heure système pour avoir queqlues chose qui ressemble à du pseudo aléatoire.

    bonne journée

  10. #9
    erik

    Re : Génération du "hasard"

    Citation:
    Posté par Patrick
    Pour le fonctionnement je te renvoi sur le calcul que l'on peut trouver en C (rand ou srand).



    Mais ces fonction sont crées à partir du hasard déjà généré, et ils ne disent pas comment c'est fait
    Les fonction rand et srand ne sont pas (en c, mais également dans les autres langages de progrmmation) "crées à partir du hasard déjà généré", je vous donne l'implémentation de rand et srand telle quelle est proposé dans "La bibliotheque c standard" de plauger :
    static unsigned long int next=1;
    int rand(void)
    {
    next=next*1103515245+12345;
    return (unsigned int) (next/65536)%32768;
    }
    void srand(unsigned int seed)
    {
    next=seed;
    }

    Le % est utilisé pour noté l'opération modulo en C.

    Quasiment tout les langages de prog utilise cet algo pour générer des nombres pseudo-aleatoires, on prend un nombre (le seed, semence,germe) fourni par le programmeur pour initialiser la séquence de nombres, on multiplie, additionne par une constante, et on retourne le tout modulo un nombre "qui va bien".
    Evidemment les constantes utilisés ne sont pas prises au hasard, certain choix de constante fournissent des séquences de nombres pas du tout aléatoires.

    Erik

  11. #10
    Patrick

    Re : Génération du "hasard"

    Tout à fait d'accord avec toi ! Sauf que c'est pas moi qui est dit :

    Mais ces fonction sont crées à partir du hasard déjà généré, et ils ne disent pas comment c'est fait
    A plus tard

Discussions similaires

  1. Suites de nombres "au hasard"
    Par fderwelt dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 17/08/2006, 14h29
  2. L'évolution : hasard ou "volonté" ?
    Par Pierre-Yves dans le forum Biologie
    Réponses: 2
    Dernier message: 23/05/2005, 22h41
Découvrez nos comparatifs produits sur l'informatique et les technologies.