Comment écrire un programme en Pascal qui affiche des numéros de 1 à 49 de façon aléatoire ? Je voudrais utiliser ce programme pour jouer au Loto. Merci
Version imprimable
Comment écrire un programme en Pascal qui affiche des numéros de 1 à 49 de façon aléatoire ? Je voudrais utiliser ce programme pour jouer au Loto. Merci
Random ?
enfin, il existe dejà en pascal une fonction random qui permet de generer des nombre aléatoire. cette fonction est random.
random(num) fournit un nombre compris entre 0 et num-1.
Ainsi, pour pour avoir des nombres compris entre 1 et 49 il te suffit de faire
Code:
1
2 resultat:=1+random(49);
Et il ne faut pas oublier le randomize, sans lui, les mêmes chiffres reviennent tout le temps =(
Code:
1
2 Randomize; result := 1 + random(49);
Bonjour
Executez une fois un code pareil dans une boucle sans randomize ça vous renvera des nombres différents mais exécutez plusieurs fois vous verez si la suite de nombres change ou pas :)
L'aide en ligne de Pascal est clair ;)
Cordialement
ça donnera deux numéro différents ;)
j'ajouterais aussi ça tiré du cours du Hugo ETIEVANT
:)Citation:
Avant l'utilisation des fonctions qui vont suivre, il faut initialiser le généraleur aléatoire (tout comme il faut initialiser la carte graphique pour faire des dessins) avec la procédure Randomize. Cette initialisation est indispensable pour être sûr d'obtenir un relativement "bon hasard" bien que ce ne soit pas obligatoire.
j'ajournerais encore une chose si on met pas de randomize on aura les même valeurs si on exécute le programme plusieurs fois mais pas dans le programme lui même j'explique exemple:
lors qu'on exécute ce programme on aura par exemple 25 et 30 mais pas le même chiffre 30 et 30.Code:
1
2
3 writeln(1+random(49)); writeln(1+random(49));
par contre si on réexecute notre programme une 2éme fois on aura le même résultat :)
Cordialement,
J'insiste, éxecutes plusieurs fois a la suite ce code
Et dis moi si la série des 5 nombres change à chaque éxecution :)Code:
1
2
3
4
5
6
7
8
9
10 uses crt; const max=5; var i:byte; begin clrscr; for i:=1 to max do writeln(random(50)+1); readln; end.
L'aide de Pascal n'est pas clair?
Bonjour,
n'oubliez pas que randomize() est parfois inintéressant. Je me base sur les cas où l'on doit générer une série de nombres aléatoires mais où on a besoin d'avoir plusieurs fois la même liste de ces nombres sur plusieurs exécutions d'un bout de code. Dans les algos génétiques et d'IA par exemple.
Les générateurs de nombres pseudo-aléatoires sont d'ailleurs plus souvent utilisés en générant une seule fois une série de nombres aléatoires et en réutilisant cette même série.
Bref, en général moi je préfère recréer une fonction d'hasard grâce aux générateurs congruentiels purs mais ça, ça dépends de l'utilisation
Sai,
Il n'est pas inintéressant, mais on peut parfois l'omettre, à condition de savoir pourquoi on ne le met pas.
Il est exact que dès qu'on utilise régulièrement des nombres pseudo-aléatoires, il est utile de regarder vers des générateurs plus performants que ceux fournis avec les compilateurs (surtout les vieux compilateurs), qui ne manquent pas, soit qu'on s'en fasse un (attention, ça ne s'improvise pas !!), soit qu'on en prenne un bien confirmé (voir par exemple Twister :)).
exact ;)