View Full Version : rand() generare numero casuale da intervallo non consecutivo
buongiorno a tutti,
qualcuno sa dirmi come si fa con la funzione rand() a generare numeri casuali da un intervallo di numeri non consecutivi?
ad esempio generare ogni volta un numero casuale dall'intervallo: 6, 10, 14, 18, 22.
linguaggio C
grazie a tutti!!!
Mi viene in mente che potresti mettere quei valori in un array e generare l'indice. Dipende se conosci quei valori.
può essere un'idea...
io cmq cercavo un'istruzione per agire direttamente sulla formula di traslazione del risultato di rand:
n = a + rand() % b;
a=valore di traslazione
b=fattore di scala
un aiuto?
ad esempio generare ogni volta un numero casuale dall'intervallo: 6, 10, 14, 18, 22. avró capito male ma a me quello non sembra un intervallo...
n = a + rand() % b;
a=valore di traslazione
b=fattore di scala b non é un fattore di scala. fai attenzione a come generi i numeri casuali: l'operazione di modulo ne modifica la distribuzione quando il modulo non é un divisore di RAND_MAX.
c'é una guida bellissima in proposito nella sottosezione dei tutorials.
blackgin
09-12-2009, 14:30
Mi viene in mente che potresti mettere quei valori in un array e generare l'indice. Dipende se conosci quei valori.
Secondo me questa è un'ottima soluzione.
E tanto per essere pignoli, numeri isolati non costituiscono un intervallo. :P
Ah dovresti pure inserire [C] nel titolo del topic, altrimenti il primo mod che passa te lo chiude.
wingman87
09-12-2009, 16:14
Ok, tu intendevi un valore della "sequenza". Beh non è difficile nel tuo esempio:
n=6+4*rand()%5;
Thread chiuso
|
V
http://www.hwupgrade.it/forum/showthread.php?t=1649196
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.