Bonjour à tous,
Après la lecture du cours sur "Les nombres aléatoires en C" (http://nicolasj.developpez.com/articles/libc/hasard/), ainsi qu'un (rapide) examun des autres méthodes de génération (Blum Blum Shub, Fibonnacci, Mersenne Twister, Von Neumann...) une question me taraude...
Dans la plupart des exemples cités ci-dessus, et même pour les plus fiables d'entre eux (BBS apparement), on utilise les propriétés du modulo, ce qui rend dans certains cas de bon bons résultats, étant donné la longeur du cycle du modulo.
Mais qui dit cycle dit périodicité des résultats, ou du moins possibilité par l'analyse de déceler une imperfection.
Dans ma grande prétention, j'ai pensé à une autre méthode pour créer des une suite de nombres qui n'est point périodique, ou du moins, mathématiquement parlant, la périodicité n'est pas prouvée.
Tout repose sur le principe des suites logistiques (wikipédia présente cela très bien: http://fr.wikipedia.org/wiki/Suite_logistique).
Une suite logistique est de la forme v(n+1) = µv(n)(1 - v(n)). Elle nécessite deux paramètres de départ : µ et v(0).
Cette suite présente la propriété de diverger pour presques toutes les valeurs de v(0), pour µ aux alentours de 4 (sauf cas particuliers "évidents" ou liés au théorème de Sarkovskii).
En réalité, il y a donc non-périodicité des résultats (ou une période "infinie") si les conditions ci-dessus sont respectées (µ ~= à 4 et v(0) non particulier).
De plus, et c'est lié entièrement à la "théorie du chaos" (), une petite variation sur les conditions de départ peut entraîner (et même entraîne) de grandes variations sur les résultats.
La "non-cyclicité" des résultats et sa grande sensibilité aux conditions initiales ne pourrait-elle donc pas être utilisée à des fins de générations aléatoire des nombres ? J'ai l'impression que cela repose sur un principe plus fiable que le modulo. On pourrait même ensuite imaginer sélectionner certaines décimales suivant un algorithme, ce qui rendrait différent les résultas obtenus pour des conditions initiales similaires.
On peut aussi envisager de jouer sur le terme de la suite (et ne pas forcemment commencer à v(1) )
Comme le dit wikipédia: au bout d'un certain temps, un phénomène chaotique est devenu imprévisible alors même que la loi qui le définit est parfaitement déterministe (idéal pour les ordinateurs non ?).
Qu'en pensez-vous ?
Le seul inconvénient que je pourrait voir, est que l'on ne travaille plus avec des entiers, mais avec des décimaux. Mais est-ce "si" dérangeant ? les calculs ne sont pas d'une difficulté redoutable non plus...
Voilà quelqu'un saura-t-il me dire ou je commet une erreur, ou bien ou est-ce que cela n'est pas faisable? Ou pourquoi personne n'utilise cette méthode alors...
J'attend vos réponses avec impatience !
Partager