GÉNÉRATEUR ALÉATOIRE SANS RND - AVEC GETTICKCOUNT

Cyberdevil Messages postés 483 Date d'inscription mardi 10 juillet 2001 Statut Membre Dernière intervention 12 juillet 2006 - 30 oct. 2003 à 18:34
xx_unity_xx Messages postés 5 Date d'inscription vendredi 14 novembre 2003 Statut Membre Dernière intervention 6 décembre 2003 - 6 déc. 2003 à 22:22
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/17537-generateur-aleatoire-sans-rnd-avec-gettickcount

xx_unity_xx Messages postés 5 Date d'inscription vendredi 14 novembre 2003 Statut Membre Dernière intervention 6 décembre 2003
6 déc. 2003 à 22:22
en vb ta huste a utiliser randomize timer c ben plus simple meme si tu utilise rnd au moin sa marche bien
Helkanen Messages postés 54 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 9 juin 2004
31 oct. 2003 à 14:39
merci sibi12, c bien ce que je pensais...
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
31 oct. 2003 à 13:42
Bonjour à tous,

Pour helkanen les opérateur And Or et Not sont des opérateurs logique.Si tu veux juste avoir l'explication booléenne fait F1 en le selectionnant c'est très bien expliquer ds l'aide. Sinon ca s'applique aussi a des entiers il suffit d'appliquer bit à bit l'operateur sur chacun des 2 operandes:

par exemple :
10010011
OR 01010010
-------------
11010011

Il y a aussi sous VB les opérateurs Imp Xor et Not(un seul opérande) je crois que c tout
Mindiell Messages postés 558 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
31 oct. 2003 à 10:02
Bon, c'est pas mal tout ca, je vous conseille comme l'ai dit CyberDevil de regarder des generateurs de nombre aleatoires beaucoup plus simples !!!

Genre : c1 = a*c0 + b
c0 est le premier nombre, il permet de creer c1, puis on reinjecte c1 dans la formule : c2 = a*c1 + b
Ainsi, seul le premier nombre a besoin de tickCount (ce qui est une bonne graine de départ).

!!! Attention !!!
a et b ne peuvent etre choisis n'importe comment, faites des essais, vous verrez bien :o). Le mieux serait de prendre des nombres premiers.

De plus, un bon truc tout simple pour eliminer les repetitions est de calculer un resultat beaucoup plus grand que l'ecart voulu, et de le ramener a l'ecart par un modulo :

ecart (0-10)
resultat (0-16000)
ainsi, meme si on a que des chiffres proches les uns des autres, on obtiendra un nombre aleatoire different :o)

Je vais tacher de retrouver le site qui expliquait tout ca :o)
Helkanen Messages postés 54 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 9 juin 2004
30 oct. 2003 à 21:07
merci Geff
c'est pas mal ce truc...
et si j'ai bien compris, X c'est par exemple gettickcount ?

parce que si c'est ça, il reste juste un problème (qui ne se posait peut etre pas à toi), c'est qu'en faisant 2 nombres aléatoires en moins d'une ms (très probable), et ben... on a pas deux nombres aléatoires, mais égaux...

par contre (eh oui, je suis encore presque un newbie...), euh j'aimerais bien savoir comment fonctionnent les opérateurs booléens (And, Or, Not..) avec des nombres... comme dans l'exelmple ci-dessus... et à quoi ils servent.

bon ben sur ce...
bonne prog à vous

Helkanen
cs_Geff Messages postés 192 Date d'inscription vendredi 2 mars 2001 Statut Membre Dernière intervention 10 janvier 2006
30 oct. 2003 à 20:53
J'ai un piti générateur de nombre aléatoire (entre -1 et 1) je l'ai codé à l'occasion d'un générateur de texture procédurale voila l'exemple en VB.Net ::

Function Noise(ByVal X As Double) As Double
Return 1.0 - ((X * (X * X * 15731 + 789221) + 1376312589) And 2147483647) / 1073741824.0
End Function

Tous ces nombres étranges sont premiers!
Helkanen Messages postés 54 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 9 juin 2004
30 oct. 2003 à 18:43
clair, j'y suis allé à la bourrin... mais c'est pas grave...
enfin bon, si tu trouves un bon algo, je suis preneur !
Cyberdevil Messages postés 483 Date d'inscription mardi 10 juillet 2001 Statut Membre Dernière intervention 12 juillet 2006
30 oct. 2003 à 18:34
g pas essayé mais ça peut etre pas mal, mais tu nutilise pas un alogirithm très précis, c'est un pdu bidule comme tu dit ! Je vais essayer d'en faire un en utilisait des algo. deja connu sur ce sujet ça serap lus puissant !
A+
Rejoignez-nous