[C] problema variabile

mikael2
Ho una variabile casuale x=rand()%nv quindi cerco un valore casuale compreso tra 0 ed nv. come posso modificare il tutto in modo da non farlo scegliere più casualmente x?

Risposte
minomic
Ciao, ho paura di non aver capito molto la domanda... Cioè non vuoi più che la variabile $x$ sia casuale? Beh allora togli il rand e assegna il valore che vuoi. Però non so se ho capito bene! ;)

vict85
Mi unisco alle perplessità di minomic. Probabilmente intendi chiedere a come fare per non farlo scegliere uniformemente...

Per quello ti “basta” fare qualcosa del tipo

int const y = rand()%m;
x = f(y);


dove f è una qualche funzione che associa l'intervallo \(\displaystyle [0,m) \) ai valori che può assumere la variabile x.

mikael2
e questa funzione f come può essere implementata in C?

vict85
Dipende da quello che vuoi fare. In realtà probabilmente il rand andrebbe messo dentro la f. Comunque se vuoi fare una moneta truccata con probabilità n/m di venire testa (0) allora si avrà che:

int f(int y)
{
   return (y < n)? 0 : 1;
} 


ma finché non ci spieghi meglio il tuo problema f potrebbe assumere qualsiasi forma.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.