:: Nombres aléatoires ::




1/ Le listing brut :

10 FOR X=1 TO 10
20 PRINT RND(1),
30 NEXT

Ce programme génère dix chiffres compris en 0 et 1 avec 10 chiffres après la virgule. Voici un autre programme plus élaboré :

10 FOR X%=1 TO 12
20 ? INT(RND(1)*10),
30 NEXT

Ici, on génère douze chiffres entiers compris entre 0 et 9.


2/ Le listing commenté :

10 FOR X=1 TO 10
// Ligne 10 : On initialise la variable de type FLOTTANT appelée X à 1 et on boucle tant que son contenu est inférieur à 11.
20 PRINT RND(1),
// Ligne 20 : On génère un chiffre aléatoire (RND, Random) compris entre 0 et 1 et on l'affiche.
30 NEXT
// Ligne 30 : On incrémente la variable X de 1 et on saute à la ligne numéro 10 tant que le contenu de X est inférieur à 11.


10 FOR X%=1 TO 12
// Ligne 10 : On initialise la variable de type ENTIER appelée X% à 1 et on boucle tant que son contenu est inférieur à 13.
20 ? INT(RND(1)*10),
// Ligne 20 : On génère un chiffre aléatoire (RND, Random) compris entre 0 et 1, on le multiplie par 10 et on affiche sa valeur entière.
30 NEXT
// Ligne 30 : On incrémente la variable X% de 1 et on saute à la ligne numéro 10 tant que le contenu de X% est inférieur à 13.


3/ Commentaires additionnels :

La fonction RND accepte des paramètres compris entre 0 et l'infini (enfin, vous savez ce que j'en pense moi de l'infini avec les ordinateurs, hein...). En vérité, le C64 crée une suite de nombres aléatoires à partir d'un chiffre de départ (appelé "seed") quand on l'allume. Le paramètre passé à RND est un leurre, il n'y a guère que son signe qui compte (positif, zéro, négatif). Si le paramètre est à zéro, un chiffre aléatoire est généré en utilisant un timer interne de l'ordinateur. Un paramètre négatif provoque une mise à jour de la liste des chiffres aléatoires.

L'instruction PRINT INT(RND(0)*50) retourne un résultat compris entre 0 et 49 et non pas entre 0 et 50. L'instruction PRINT INT(RND(0)*50)+1 donnera des résultats allants de 1 à 50.