Altra possibilità.

Supponiamo di avere 20 regioni, 30 stati e 100 province.

Si scrivano le equazioni delle rette passanti per le coppie di punti:

( 0 , 0  ) - ( 20 , 1/3)
(20 , 1/3) - ( 50 , 2/3)
(50 , 2/3) - (150 , 1  )


Scelto un numero casuale w in ( 0 , 1 ) si stabilisce se è compreso da (0/1/3) 
o fra (1/3,2/2) oppure fra (2/3, 1 ).

Si calcola la corrispondente contro immagine e l’intervallo nel quale questa 
cade ci dà la regione o la nazione oppure la provincia cercata.

In questo modo si effettua un solo sorteggio.

Bruno Firmani




> Il giorno 12 feb 2024, alle ore 22:13, Marco Beri <marcob...@gmail.com> ha 
> scritto:
> 
> On Mon, 12 Feb 2024, 21:25 Mauro Casini, <ma...@iperbole.bologna.it 
> <mailto:ma...@iperbole.bologna.it>> wrote:
>> Marco Beri <marcob...@gmail.com <mailto:marcob...@gmail.com>> writes:
>> 
>> >> cas_lst = random.choice((reg_ita, naz_eur, pro_ita))
>> >> cas_fin = random.choice(cas_lst)
>> >
>> > Non è quello che vuole fare lui.
>> >
>> > Lui vuole scegliere a caso tra reg_cas, naz_cas e pro_cas.
>> 
>> È la stessa cosa: un elemento casuale con prob. 1/3 reg, 1/3 naz, 1/3
>> pro.  È inutle sorteggiare un elemento da ogni lista per poi scartarne
>> due, basta estrarne uno solo da una lista scelta a caso fra le tre,
> 
> 
> 
> Ah, giusto. Sono stato avventato :-)
> 
> Così ti risparmi due random.choice.
> 
> Ciao.
> Marco.
> 
> _______________________________________________
> Python mailing list
> Python@lists.python.it <mailto:Python@lists.python.it>
> https://lists.python.it/mailman/listinfo/python

_______________________________________________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python

Rispondere a