[Python] come ottenere numeri dispari casuali in un intervallo dato

Enrico Franchi enrico.franchi a gmail.com
Mar 5 Gen 2010 12:09:55 CET


On Jan 5, 2010, at 11:35 AM, Stefano Dal Pra wrote:

> Propongo anche questa variante:
> 
> import random
> random.randint(0,9) | 1
> 
> il | 1 setta a uno il bit meno significativo, rendendolo dispari se non lo e'.
> E' importante che gli estremi passati a randint siano: pari quello inferiore
> e dispari quello superiore, altrimenti i risultati non sarebbero tutti
> equiprobabili.

Perche' giocare con i bit quando Python offre direttamente costrutti con la semantica voluta?

Per inciso, trasformare numeri pseudo-casuali e' in generale un'operazione piuttosto rischiosa, in quanto si puo' andare ad influire negativamente sulla qualita' della sequenza generata. Nell'esempio probabilmente non ci sono problemi, visto che il generatore sotto Python e' un Mersenne Twister di altissima qualita' e "dovrebbe" reggere bene ad una cosa del genere. *Ma* ci vorrebbe una qualche dimostrazione.

Ora, nel caso probabilmente non interessa. Tuttavia *in genere* le sequenze pseudo-casuali sono bestie abbastanza delicate.




Maggiori informazioni sulla lista Python