Processing > Hasard
Contents (hide)
La fonction random() génère un nombre à virgule aléatoire . Elle peut être utilisée sous deux formes:
float a = random(10); // a prend comme valeur un nombre à virgule entre 0 et 10 float b = random(50,60); // b prend comme valeur un nombre à virgule entre 50 et 60
On peut générer un nombre entier aléatoire ainsi:
int i = int(random(50,60));
Dans l'exemple suivant, nous déterminons un évènement avec 10% de probabilité d'être exécuté:
float r = random(100); if ( r < 10 ) { // 10 chances sur 100, donc 10% // Evenement }
La fonction noise() retourne toujours un nombre à virgule aléatoire entre 0 et 1. Plus l'index est incrémenté rapidement, plus la variation entre les nombres générés sera grande.
float n = noise(frameCount*0.01);
class Urn { private int size; private int[] contents; private int current_size; Urn(int size) { if ( size < 1 ) size = 10; this.size = size; contents = new int[size]; reset(); } int get() { if ( current_size > 0 ) { int index = int(random(current_size)); // choose a # between 0 and size int value = contents[index]; contents[index] = contents[current_size-1]; // move the last element in the urn current_size = current_size - 1; return value; } else { return -1; } } void reset() { current_size = size; for (int i = 0; i < size; i++) { contents[i] = i; // fill the array with a sequence of integers starting with 0 } } }