nassimaro
Messages postés1Date d'inscriptionsamedi 3 mai 2008StatutMembreDernière intervention 3 mai 2008
-
3 mai 2008 à 14:46
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 2016
-
5 mai 2008 à 18:12
Bonjour,
je cherche un programme en delphi qui génère un nombre aléatoire. Merci
tu bouges la mollette de ta souris, tu trouves :
Avec la fonction Random et un Trunc pour le convertir en entier. Et un appel à Randomize au démarrage du programme.
De la tu sors 2 choses :
_ Aléatoire en delphi : Random
_ A chaque démarrage Randomize ...
Ben voila t'as réponse : Dans le OnCreate de la fiche -> un appel à Randomize
Un peu de culture après (sorti tout droit de l'aide) :
Random
Dans le code Delphi, la fonction Random renvoie un nombre aléatoire compris dans l'étendue 0 <= X < Range. Si Range est omis, le résultat est un nombre aléatoire réel compris dans l'étendue
0 <= X < 1.
Maintenant tu peux le faire toi même ce programme , n'est ce pas merveilleux ?!
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 3 mai 2008 à 22:40
Bonjour, n'oublie pas de cliquer sur réponse acceptée !
en effet, Random est une fonction intégrée de borland, qui permet de générer un nombre aléatoire avec je ne sais plus quel algorithme (un truc du genre 12345678 * x + 1, j'avais vu ca sur un topic du forum)
Par contre Randomize ne doit s'appeller QU'UNE SEULE FOIS
Ou tu veux (le plus pratique c'est dans OnCreate)
Si tu le mets plusieurs fois (par exemple dans une boucle For-Do, il y a de fortes chances pour qu'il te ressorte souvent la même suite de nombres (j'en ai déja fait l'experience avec un sudoku ), alors penses bien à vérifier cela).
Pour donner une valeur aléatoire à une variable, tu fais
Var (type Int) := random(l'étendue dans la laquelle doit se situer le nombre [donc de 0 à ce nombre]);
Au fait, à ceux qui auraient des problèmes pour générer un nombre aléatoire pour pouvoir rendre une valeur booléenne, j'ai déjà vu des personnes faire ca :
V := random(1);
if V = 0 then Bool := False else Bool := True;
Une autre solution (parce que random(1) c'est pas pratique, et c'est peu fiable je trouve) :
V := random(1000);
Bool := Odd(V);
En fait Odd regarde si c'est un nombre impair. Donc ici vous avez franchement 50% de chances (plus on met une étendue élevée, plus on se rapproche du 50% je crois) alors que avec random(1) c'est très peu fiable (si j'en crois mon cahier de mathématiques, chapitre - taux et pourcentages de fiabilité ou un truc du genre)
Bon ok ce n'est que de la périphrase du message de Nicolas_____
Mais je préfère te le préciser, pour que tu sois vraiment au point ^^
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 5 mai 2008 à 18:12
Bonjour,
apparement il est extremement difficile de créer un générateur totalement aléatoire, car il doit toujours se baser sur quelque chose. Je vais tenter d'en créer un (je dis bien tenter ^^) et on verra bien le résultat ;)
Et je pense que ce topic est clos, vu que nous avons (amplement, je crois) donné la solution à Nassimaro :)