Posté le 23/03/2020 15:37
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 57 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 23/03/2020 15:43 | #
Pourquoi cherches-tu une formule faite maison aux propriétés mal étudiées et pas fiables ? Il y a plein de générateurs aléatoires bien étudiés dans la nature. À commencer par un LCG...
Tu prends n'importe quel LCG qui se calcule avec moins de 15 chiffres de précision (pour que ça plante par sur les modulos), tu auras une multiplication, une addition et un modulo par nombre généré, période de 2^16 ou peut-être plus si t'as de la chance (faut que ça se calcule avec 15 chiffres, donc 2^32 c'est pas évident), et du coup une distribution uniforme sur l'ensemble de valeurs considéré.
Citer : Posté le 23/03/2020 15:52 | #
Pour le modulo, je rappelle l'existence de MOD_Exp(a, b, c) qui calcule a^b % c
Edit :
Chuis con, pour un LCG ça sert pas à grand chose.
Citer : Posté le 23/03/2020 15:53 | #
Merci beaucoup !
Si j'ai bien compris, un LCG est juste une formule avec des paramètres ?
J'ai encore à tester, mais de ce que j'ai compris le code serait juste :
//S is seed
MOD(AS + C, M → S
Avec A, C et M des valeurs à choisir ?
Citer : Posté le 23/03/2020 15:57 | #
Voilà, mais tu les choisis pas, tu prends des choses qui ont déjà été utilisées. Tu as aussi oublié que S n'est pas le nombre aléatoire, c'est juste une partie des bits.
Par exemple, tu peux prendre A=214013, C=2531011 et M=2^32. Ton nombre aléatoire c'est les bits 16 à 30 de S donc ça va entre 0 et 32768. (C'est des paramètres présents dans MSVC.)
Citer : Posté le 23/03/2020 16:03 | #
Merci, mais dans ce cas là comment extraire cette partie des bits de façon efficace ?
Vu la vitesse du Basic je me demande si ça va passer
Citer : Posté le 23/03/2020 16:11 | #
État suivant :
Génération du nombre aléatoire :
Citer : Posté le 23/03/2020 16:13 | #
Merci beaucoup
Je met ton code dans le post principal.