Quel sont les principes pour générer un nombre aléatoire ? On se trouve en présence du paradoxe : formuler une loi "positive" pour rendre compte d'une absence de loi.
Quel sont les principes pour générer un nombre aléatoire ? On se trouve en présence du paradoxe : formuler une loi "positive" pour rendre compte d'une absence de loi.
Salut,
Pour la seconde partie de ta question, je comprends pas bien le truc...
Mais pour la 1ère question, générer un nombre aléatoire, c'est en toute rigueur impossible en informatique : on génère en fait des nombres pseudo-aléatoires, en se basant par exemple sur l'horloge du processeur (le nombre tiré 'au hasard' est lié au moment où on le demande), sur des algorithmes ou autres... Mais ça n'est pas du vrai hasard !
C'est quoi une loi positive ? Une loi qui génère toujours des nombres positifs ???
A+
"Cultiver les sciences et ne pas aimer les hommes, c'est allumer un flambeau et fermer les yeux." Proverbe chinois
Je voulais dire positif au sens de "qui établit un principe bien établi, qui exclut l'incertitude" (site du TLF). Le mot est un peu philosopheux mais tu as très bien expliqué qu'on ne pouvait que générer des nombres pseudo-aléatoires.
En fait il faut surtout que la loi de génération des nombres et celle du calcul ne se rapprochent pas, sinon on va créer des cas particuliers. C'est peu probable mais on peut y arriver si des tas d'usagers utilisent des classes dérivées par ex.
Si j'ai bien compris, on génère une suite de nombres pseudo-aléatoires a partir d'une donnée supposée aléatoire (temps de l'horloge, temps d'éxecution d'une fonction, etc), puis on pour tirer un élément, on se sert de chaque élément pour calculer le suivant (j'ai pas l'impression d'etre tres clair...)
voici un exemple:
Je veux générer une suite de 50 nombres "aléatoires":
je note n le nombre supposé aléatoire trouvé (exemple l'heure courante),
puis, pour calculer le nombre aléatoire suivant je procède ainsi :
a = 9821 * n
NombreAleatoire = (a + 0.211327) - E(a + 0.211327)
(fonction E: partie entiere du réel)
Ensuite je recommence pour les 50 éléments de la suite en prenant pour valeur de n le nombre trouvé précemment
Il y a un sujet qui en traitait récemment ici, on parliat du générateur Mersenne Twister qui a une période de 2^19000 et quelques. Avec ça, tu as une variable aléaoire avec de bonnes propriétés spectrales pour beaucoup d'applications.
Dans ce cas, on dit déterministe.Je voulais dire positif au sens de "qui établit un principe bien établi, qui exclut l'incertitude" (site du TLF).
Soyons pompeux. Ca dépend de ce que tu appelles aléatoire. On s'accorde en général à dire qu'un événement aléatoire est un événement non-prédictible. Ramenons notre générateur de "nombres" à un générateur de bits(ce qui est plus juste mais moins pratique). Il génère une suite de bits aléatoires, si, connaissant, les n premiers bits, on ne peut pas prédire avec une probabilité > 1/2 ce que sera le n+1 ème bit. Le problème d'un comportement déterministe est qu'il va forcément boucler (pour raison de finitude du nombre de configurations possibles). Donc si tu te contentes de très peu de nombres, il peut sembler se comporter comme un générateur vraiment aléatoire, mais il arrivera toujours un moment ou on pourra prédire le prochain bit avec une probabilité > 1/2.Le mot est un peu philosopheux mais tu as très bien expliqué qu'on ne pouvait que générer des nombres pseudo-aléatoires.
Arf, j'ai des amis qui ont faits un véritable générateur de nombre aléatoire. OK, c'était un générateur physique à partir du bruit d'une diode zéner
et de même certains générateurs aléatoires proviennent de considération physiques (quantiques), à partir de photons. Mais de là à se que cela soit intégré à la prochaine mouture de Windows
Nemerle, mathématicopilier de bars, membre du triumvirat du CSTM, 3/4 centre
Il est possible tout simplement de mesurer l'entropie de la tension délivré par l'alimentation.
Certe ce hasard serait plus facilement contrôlable que la mesure de la désintégrations de particules radioactives, mais ça doit donner des bons résultats.
Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter.
se baser sur l'entropie de la tension restera "pseudo-aléatoire", désolé.
Nemerle, mathématicopilier de bars, membre du triumvirat du CSTM, 3/4 centre
Vous pouvez vous pencher sur les "mutex" si vous voulez rire.
Ce sont des nombres, ou plutot des combinaisons de bits qui détermine l'identité d'une application de manière unique....
Cela sert à identifier les applications entre elles. Le mutex est généré par le programmeur (avec un générateur de mutex). Sans aucun contact avec les autres programmeurs de la terre, mais la probabilité pour que deux mutex soient identiques pour deux application est tellement faible qu'elle en est plus que négligeable.
Cette génération s'effectue grâce à l'heure de création, et à d'autres paramètres que j'ai oubliés....
Donc par conséquent pour qu'il y est 2 mutex identiques, il faut qu'au même instant, les deux programmeurs génèrent, avec les mêmes paramètres...... Ce qui est malheureusement impossible.
Je crois même que la définition d'un mutex c'est suite de bits UNIQUE...
Bien sur si on génère le mutex avec le générateur de mutex.... !!!
Mais bon faut pas être débile... Si je recopie le mutex de mon pot c'est normal que ce soit le même....
Première grosse démo en construction :
http://bitbucket.org/rafy/exo2/
Mais c'est basé sur un calcul, tandis que le bruit d'un élément physique n'est relié à rien d'autre que lui-même
Les mutex n'ont rien d'aléatoire !
Une suite aléatoire peut fort bien présenter la même valeur plusieurs fois (simplement, cela ne pourra pas être prédit) ... alors que cela a l'air bien plus délicat (voire improbable) pour un générateur de mutex.
La FAQ Perl est par ici
: La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager