68yslexic77ind ha scritto:
Per quanto riguarda la parte dell'esclusione degli estremi occorre (se non erro) inserire +1 prima di rand()
per escludere lo 0
Se intendi
r=(rand()+1)/(RAND_MAX+1)
l'intervallo considerato sarà (0;1].
Per escludere lo 0 bisogna evitare che il numeratore assuma il valore 0, mentre per escludere l'1 bisogna evitare che il numeratore sia uguale al denominatore.
Quindi la soluzione consiste o nel controllare che il valore restituito da rand() sia diverso da 0 e RAND_MAX e in tal caso la formula sarà semplicemente
r=rand()/RAND_MAX
oppure utilizzare direttamente una formula del genere:
r=(rand()+1)/(RAND_MAX+2)