Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
18 janv. 2004 à 12:51
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020
-
5 mai 2006 à 19:08
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020371 5 mai 2006 à 19:08
pour le code c'est vraimant le minimum.
"diviser par son numéro IP fois un nombre pseudo aléatoire tiré avec "rnd", et tout ceci coupé en 4 caractères pris au hasard dans la chaîne"
Cette opération ne rend surment pas un nombre aléatoire car le nombre sorti avec le générateur pseudo aléatoire est prévisible, l'IP de meme.
5/10
Mac2550
Messages postés9Date d'inscriptiondimanche 23 février 2003StatutMembreDernière intervention11 septembre 2005 11 sept. 2005 à 18:34
L'aléatoire c'est la mutliplication de l'heure, de la minute et de la seconde actuelle, diviser par son numéro IP fois un nombre pseudo aléatoire tiré avec "rnd", et tout ceci coupé en 4 caractères pris au hasard dans la chaîne...
En gros pour être vraiment aléatoirement, l'utilisation de l'heure actuelle (heure, minute, seconde) est pratiquement obligatoire, et pourquoi pas la date non plus?
cs_clad87
Messages postés42Date d'inscriptionsamedi 28 décembre 2002StatutMembreDernière intervention24 août 2015 16 juin 2005 à 01:20
Fix(Rnd * 99999) pcpunch, meerci xD
Niconapo
Messages postés13Date d'inscriptiondimanche 18 août 2002StatutMembreDernière intervention26 novembre 2011 21 janv. 2004 à 11:44
Au début quand j'ai commencé a developper.. j'aurais aimé avoir des sources de ce genre mais malheureusement il n'y en avait pas et c'etait beaucoup plus dur de s'y mettre.
Si vous n'êtes pas content libre à vous mais je suis sur de faire des heureux avec ça..
cs_Patrice99
Messages postés1221Date d'inscriptionjeudi 23 août 2001StatutMembreDernière intervention 9 septembre 2018 19 janv. 2004 à 08:38
Pour faire un peu plus aléatoire, il faut par exemple utiliser un timer et faire une boucle d'attente en attendant que l'on presse une touche, et se servir alors de cette temporisation pour initialiser le générateur pseudo aléatoire.
cs_guifr
Messages postés105Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention19 mai 2005 18 janv. 2004 à 22:10
pcpunch --> Certes, j'avais dû utiliser la fonction Rnd() pour créer un générateur de labyrinthe, or, dans ce cas je ne me base pas sur la totalité des décimales, vu que je n'ai à faire le choix qu'entre 4 directions... Et là, le résultat était flagrant, c'était cyclique, dommage que je ne puisse insérer une image, ce serait flagrant...
En ce qui concerne le programme de Niconapo (puisque c'est de celà qu'il s'agit), bon il ne s'agit vraiment pas d'une méthode "originale" de générer une série de nombre pseudo-aléatoires, elle ne fait que reprendre la fonction originale, n'ajoute rien, voir enlève des trucs vu qu'il y a moins de décimales...
pcpunch
Messages postés1243Date d'inscriptionmardi 7 mai 2002StatutMembreDernière intervention18 février 20195 18 janv. 2004 à 20:02
Niconapo, j 'avais pas vu que c'etait ta Src!!! tu trouve pas que poser un Zip pour 2 lignes qui de surcroit ne sont pas de toi, et en plus d'une simplicité enfantine!!! c'est un peu Naze!!!
Enfin j'vai bientot poster une nouvelle source(Zip+Capture) :
MsgBox "Nous sommes le " & Date
Sympa non ????
pcpunch
Messages postés1243Date d'inscriptionmardi 7 mai 2002StatutMembreDernière intervention18 février 20195 18 janv. 2004 à 19:52
Niconapo--->c'est vrai mais pas si tu place un Randomize avant, il doit certainement s'agir d'un oubli de la part de reinfield le connaissant!!!
Randomize
a = Int(5000 * Rnd)
List1.AddItem a
pcpunch
Messages postés1243Date d'inscriptionmardi 7 mai 2002StatutMembreDernière intervention18 février 20195 18 janv. 2004 à 19:46
Guifr---> comme j'etais septique!!! g fais ce petit test avec 3 listbox
List1.Clear
'1er cycle
For i = 0 To 1000
Randomize
List1.AddItem Fix(Rnd * 99999)
Next i
List2.Clear
'2eme cycle
For i = 0 To 1000
Randomize
List2.AddItem Fix(Rnd * 99999)
Next i
List3.Clear
'Verification
For i = 0 To 100
For a = 0 To 100
If List1.List(i) = List2.List(a) Then List3.AddItem a
Next a
Next i
ça donne 2 cycle de 1000 nombres aléatoire stocké dans list1 et list2
Le list3 reprend les nombres tirer dans les 2 listes!!!
Sur plusieurs tirage succesif, aucun nombre en commun dans les 2 listes, ni aucun nombre identique dans les listes donc je me dit que c pas si pseudo alétoire que ça!!!!
Niconapo
Messages postés13Date d'inscriptiondimanche 18 août 2002StatutMembreDernière intervention26 novembre 2011 18 janv. 2004 à 19:42
Pour pcpunch hihi oui exact cela fonctionne ;)
Je vais éditer la source et mettre ce code qui est encore moins long et plus simple..
Niconapo
Messages postés13Date d'inscriptiondimanche 18 août 2002StatutMembreDernière intervention26 novembre 2011 18 janv. 2004 à 19:41
Pour répondre à Renfield et bien je vais tout simplement te dire ..
Le nombre créer n'est pas réelement aléatoire..
Tu obtiendra absolument à la première exécution du code ses nombres :
3527,2667,2897 etc etc..
Voilà tout le problème du 'simple' a = Int (5000 * rnd )
cs_guifr
Messages postés105Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention19 mai 2005 18 janv. 2004 à 19:10
Le rnd c'est bien, mais c'est pas suffisant, si vous avez créé des programmes ayant très (trop ?) souvent recours à rnd, vous vous rendrez vite compte que comme générateur de nombre pseudo aléatoire on peut mieux faire, et rnd se montre en fait relativement cyclique (donc pour le hasard, c'est un peu nul)...
J'ai pas encore testé ton code dans ce genre de programme... à voir...
pcpunch
Messages postés1243Date d'inscriptionmardi 7 mai 2002StatutMembreDernière intervention18 février 20195 18 janv. 2004 à 12:53
DSl Renfield, en mm tps lol!!! ++ :)
pcpunch
Messages postés1243Date d'inscriptionmardi 7 mai 2002StatutMembreDernière intervention18 février 20195 18 janv. 2004 à 12:52
Oui c bien, mais un peu long pour si peu!!!
Je te le fait en 2 lignes!!!!
Randomize
Text4 = Fix(Rnd * 99999)
++
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 18 janv. 2004 à 12:51
5 mai 2006 à 19:08
"diviser par son numéro IP fois un nombre pseudo aléatoire tiré avec "rnd", et tout ceci coupé en 4 caractères pris au hasard dans la chaîne"
Cette opération ne rend surment pas un nombre aléatoire car le nombre sorti avec le générateur pseudo aléatoire est prévisible, l'IP de meme.
5/10
11 sept. 2005 à 18:34
En gros pour être vraiment aléatoirement, l'utilisation de l'heure actuelle (heure, minute, seconde) est pratiquement obligatoire, et pourquoi pas la date non plus?
16 juin 2005 à 01:20
21 janv. 2004 à 11:44
Si vous n'êtes pas content libre à vous mais je suis sur de faire des heureux avec ça..
19 janv. 2004 à 08:38
18 janv. 2004 à 22:10
En ce qui concerne le programme de Niconapo (puisque c'est de celà qu'il s'agit), bon il ne s'agit vraiment pas d'une méthode "originale" de générer une série de nombre pseudo-aléatoires, elle ne fait que reprendre la fonction originale, n'ajoute rien, voir enlève des trucs vu qu'il y a moins de décimales...
18 janv. 2004 à 20:02
Enfin j'vai bientot poster une nouvelle source(Zip+Capture) :
MsgBox "Nous sommes le " & Date
Sympa non ????
18 janv. 2004 à 19:52
Randomize
a = Int(5000 * Rnd)
List1.AddItem a
18 janv. 2004 à 19:46
List1.Clear
'1er cycle
For i = 0 To 1000
Randomize
List1.AddItem Fix(Rnd * 99999)
Next i
List2.Clear
'2eme cycle
For i = 0 To 1000
Randomize
List2.AddItem Fix(Rnd * 99999)
Next i
List3.Clear
'Verification
For i = 0 To 100
For a = 0 To 100
If List1.List(i) = List2.List(a) Then List3.AddItem a
Next a
Next i
ça donne 2 cycle de 1000 nombres aléatoire stocké dans list1 et list2
Le list3 reprend les nombres tirer dans les 2 listes!!!
Sur plusieurs tirage succesif, aucun nombre en commun dans les 2 listes, ni aucun nombre identique dans les listes donc je me dit que c pas si pseudo alétoire que ça!!!!
18 janv. 2004 à 19:42
Je vais éditer la source et mettre ce code qui est encore moins long et plus simple..
18 janv. 2004 à 19:41
Le nombre créer n'est pas réelement aléatoire..
Tu obtiendra absolument à la première exécution du code ses nombres :
3527,2667,2897 etc etc..
Voilà tout le problème du 'simple' a = Int (5000 * rnd )
18 janv. 2004 à 19:10
J'ai pas encore testé ton code dans ce genre de programme... à voir...
18 janv. 2004 à 12:53
18 janv. 2004 à 12:52
Je te le fait en 2 lignes!!!!
Randomize
Text4 = Fix(Rnd * 99999)
++
18 janv. 2004 à 12:51