Annuler un RandomSeed

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Annuler un RandomSeed

Message par SPH »

Apres avoir executer un quelconque randomseed, il est impossible de revenir au mode aleatoire de random.
Il devrait donc exister une instruction killrandomseed ou tuer le processus randomseed en lui passant la valeur 0 (ou une valeur negative)
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

LOL

y'a pas de "mode aléatoire de random"
au démarrage de ton programme (si jamais tu utilises la fonction random) un randomseed sera effectué

si tu veux en faire un toi même qui soit vraiment aléatoire donne ElapsedMilliseconds() comme germe aléatoire

Dri
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

ou bien un simple

Debug RandomSeed(Random(65535))
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

Dr. Dri a écrit :LOL

y'a pas de "mode aléatoire de random"
au démarrage
Ha oui ?
Alors, lance plusieurs fois ce simple programme :

Code : Tout sélectionner

Debug Random(1000000000)
Quoi ? Comment ?? Ca ne debuggue pas la meme chose ????
Voila, tu viens d'apprendre ce que RANDOM signifie :wink:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Dri a raison !!

les random() sont pris sur une liste certe tres longue mais une liste de chiffre
va lire cette article tres interressant sur le sujet
http://developpeur.journaldunet.com/tut ... sard.shtml
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

Dobro a écrit :Dri a raison !!
:roll:

Code : Tout sélectionner

Debug Str(Random(100))+" : nombre entre 0 et 100 impossible a prevoir"
Debug Str(Random(100))+" : nombre entre 0 et 100 impossible a prevoir"
Debug Str(Random(100))+" : nombre entre 0 et 100 impossible a prevoir"
Debug Str(Random(100))+" : nombre entre 0 et 100 impossible a prevoir"
Debug ""
RandomSeed(100) : Debug "RandomSeed(100)"
Debug ""
Debug Str(Random(100))+" : le chiffre trouvé est 37"
Debug Str(Random(100))+" : le chiffre trouvé est 16"
Debug Str(Random(100))+" : le chiffre trouvé est 27"
Debug Str(Random(100))+" : le chiffre trouvé est 10"
Debug ""
RandomSeed(-1) : Debug "RandomSeed(-1)"
Debug "; Disons qu'on kill le process RandomSeed grace a '(-1)'"
Debug "; pour retrouver un réel mode aléatoire"
Debug ""
Debug Str(Random(100))+" : le chiffre sera 43; helas"
Debug Str(Random(100))+" : le chiffre sera 42; helas"
Debug Str(Random(100))+" : le chiffre sera 75; helas"
Debug Str(Random(100))+" : le chiffre sera 88; helas"
Debug ""
Debug "; Dommage, apres un RandomSeed, TOUS les nombres sont"
Debug "; previsibles meme quand on n'en veux plus..."
Debug "; Il manque un 'kill randomseed'"
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

et voila !

Code : Tout sélectionner

Debug Str(Random(100))+" : nombre entre 0 et 100 impossible a prevoir"
Debug Str(Random(100))+" : nombre entre 0 et 100 impossible a prevoir"
Debug Str(Random(100))+" : nombre entre 0 et 100 impossible a prevoir"
Debug Str(Random(100))+" : nombre entre 0 et 100 impossible a prevoir"
Debug ""
RandomSeed(100) : Debug "RandomSeed(100)"
Debug ""
Debug Str(Random(100))+" : le chiffre trouvé est 37"
Debug Str(Random(100))+" : le chiffre trouvé est 16"
Debug Str(Random(100))+" : le chiffre trouvé est 27"
Debug Str(Random(100))+" : le chiffre trouvé est 10"
Debug ""
RandomSeed(Random(32000)) : Debug "RandomSeed(-1)"
Debug "; Disons qu'on kill le process RandomSeed grace a '(-1)'"
Debug "; pour retrouver un réel mode aléatoire"
Debug ""
Debug Str(Random(100))+" : le chiffre sera 43; helas"
Debug Str(Random(100))+" : le chiffre sera 42; helas"
Debug Str(Random(100))+" : le chiffre sera 75; helas"
Debug Str(Random(100))+" : le chiffre sera 88; helas"
Debug ""
Debug "; Dommage, apres un RandomSeed, TOUS les nombres sont"
Debug "; previsibles meme quand on n'en veux plus..."
Debug "; Il manque un 'kill randomseed'" 
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Message par Patrick88 »

RandomSeed(ElapsedMilliseconds()) à la place du RandomSeed(-1)

pat
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

15; 31; 93; 63
15; 31; 93; 63
15; 31; 93; 63
15; 31; 93; 63
15; 31; 93; 63
15; 31; 93; 63
15; 31; 93; 63

Ha ouai dodo, tes randoms sont tres aleatoire !!

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Message par Patrick88 »

vouivouijevoijevoi
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

Patrick88 a écrit :RandomSeed(ElapsedMilliseconds()) à la place du RandomSeed(-1)

pat
C'est la meilleure approche pour corriger ce petit soucis.
Merci Pat88
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

t'es pas du genre bourrain toi ??

je t'es indiqué la façon de suprimer un randomseed

maintenant je te remontre a nouveau en t'indiquant ou il faut regarder !!




RandomSeed (100) : Debug "RandomSeed(100)"
Debug Str ( Random (100))+ " : le chiffre trouvé est 37"
Debug Str ( Random (100))+ " : le chiffre trouvé est 16"
Debug Str ( Random (100))+ " : le chiffre trouvé est 27"
Debug Str ( Random (100))+ " : le chiffre trouvé est 10"


OpenConsole ()
EnableGraphicalConsole (1)
debut:
RandomSeed ( Random (32000))

Resultat = ConsoleLocate (1, 1)
Print ( "; Disons qu'on kill le process RandomSeed grace a '(-1)'" )
Resultat = ConsoleLocate (1, 2)
Print ( "; pour retrouver un réel mode aléatoire" )
Resultat = ConsoleLocate (1, 4)
Print ( Str ( Random (100))+ " <<<<<<<<<< SPH regarde la : le chiffre sera 43; helas" )
Resultat = ConsoleLocate (1, 5)
Print ( Str ( Random (100))+ " <<<<<<<<<< SPH regarde la : le chiffre sera 42; helas" )
Resultat = ConsoleLocate (1, 6)
Print ( Str ( Random (100))+ " <<<<<<<<<< SPH regarde la : le chiffre sera 75; helas" )
Resultat = ConsoleLocate (1, 7)
Print ( Str ( Random (100))+ " <<<<<<<<<< SPH regarde la : le chiffre sera 88; helas" )
Delay (1000)
ClearConsole ()
Goto debut
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

et c'est pas dodo mais DOBRO !

(j'ai laissé tes idiotie de ": le chiffre sera 43; helas") pour te montrer que tu te trompe evidement :lol:
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

Dobro a écrit :t'es pas du genre bourrain toi ??

je t'es indiqué la façon de suprimer un randomseed

maintenant je te remontre a nouveau en t'indiquant ou il faut regarder !!
Je le lance. Résultat :
15; 31; 93; 63
Je le relance. Résultat :
15; 31; 93; 63
Je le relance. Résultat :
15; 31; 93; 63

Quelle methode aleatoire !!!

Je prend maintenant la tres bonne approche de pat en remplacant ton :

Code : Tout sélectionner

RandomSeed ( Random (32000)) 
Par son excellent :

Code : Tout sélectionner

RandomSeed(ElapsedMilliseconds()) 
Je le lance. Résultat :
49; 46; 6; 45
Je le relance. Résultat :
18; 77; 55; 20

On arrete là où tu souhaites encore defendre une mauvaise methode ?
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

je pense que t'a un problem avec ton ordi !!
chez moi mon programme en console fait varier les chiffres !! 8O

en faisant "RandomSeed ( Random (32000))"
c'est evident qu'il fait changer le ramdom seed !!

si ça marche pas chez toi , c'est pas normal !

denis ? ou Nico ,Dri ?? quelqu'un ?
Répondre