Coelestis - Il Forum Italiano di Astronomia

Coelestis - Il Forum Italiano di Astronomia (http://www.trekportal.it/coelestis/index.php)
-   Rudi Mathematici (http://www.trekportal.it/coelestis/forumdisplay.php?f=11)
-   -   Estrazioni casuali (http://www.trekportal.it/coelestis/showthread.php?t=42400)

astromauh 11-11-11 05:06

Re: Estrazioni casuali
 
Quote:

Erasmus (Scrivi 535327)
Ma se sai programmare in modo da usare la "forza bruta", guarda che è molto più semplice programmare una formula che fare il conteggio esaustivo di tutti i casi (che qui sono 6^12 = 2 miliardi e rotti) contando tra essi i casi favorevoli per poi dividerli per la totalità dei casi (per avere la probabilità); oppure (alla Mizarino) fare una cosa analoga non tra tutti i casi ma tra un gran numero distribuito uniformemente sull'insieme della totalità dei casi (Metodo Montecarlo).

Non so se mi sono espresso male, ma io ho usato il metodo alla Mizarino, ossia il metodo Montecarlo. Per me, considerare tutti i casi possibili, oppure considerare un gran numero di essi, distribuito uniformemente sull'insieme della totalità dei casi, sono entrambi dei metodi basati sulla forza bruta.

Se mi dite che per metodo basato sulla forza bruta, si considera solo quello che tiene conto di TUTTI i casi possibili, in futuro farò più attenzione a ciò che dico. :o

Invece di considerare la totalità dei 2 miliardi e rotti di casi, ne ho considerati 100 milioni, che sono comunque un grosso numero.

La differenza tra i due metodi, è che con il metodo Montecarlo, si ottiene un risultato approssimato, se si vuole un risultato preciso fino all'ultima cifra decimale, con il metodo Montecarlo, bisognerebbe considerare un numero di casi addirittura maggiore dei 2 miliardi e rotti di tutte le combinazioni possibili.

A proposito di cifre decimali, il mio risultato differisce un po' da quello di Aspesi, perchè mi veniva: 43,758 % e sarei pronto a scommettere che il mio risultato è più preciso del suo.

:hello:

aspesi 11-11-11 07:59

Re: Estrazioni casuali
 
Quote:

astromauh (Scrivi 535331)
A proposito di cifre decimali, il mio risultato differisce un po' da quello di Aspesi, perchè mi veniva: 43,758 % e sarei pronto a scommettere che il mio risultato è più preciso del suo.

:hello:

Assolutamente, no! Scommettiamo pure :p
Con il calcolo "preciso" dei casi favorevoli rispetto a quelli totali possibili, il risultato è "esatto" e non approssimato come quello che ottieni tu.
Non ho guardato cosa dice Erasmus, lo farò più tardi, poi, se non è stata trovata, riporterò la mia soluzione.

:hello:

astromauh 11-11-11 08:09

Re: Estrazioni casuali
 
Quote:

aspesi (Scrivi 535357)
Assolutamente, no! Scommettiamo pure :p

OK, scommettiamo una ricarica del cellulare di 10 euro. :ok:

Accetti?


Quote:

aspesi (Scrivi 534902)
Cioè, la probabilità di avere 6 dadi con valore differente è il 43,78%. :)

Hai diritto ad un'altra cifra decimale, cosa ci metti dopo l'otto ?

Ho visto adesso che anche ad Erasmus viene il tuo stesso risultato.

Mah, vorrà dire che ho perso 10 euro. :cry:

aspesi 11-11-11 08:33

Re: Estrazioni casuali
 
Quote:

Erasmus (Scrivi 535327)
@ aspesi
La tua formula ricorsiva non l'ho mica capita.
Sei sicuro del numero 43.78%?
Cosa vorresti dire?
Lanci forse un dado alla volta (k = 1, 2, 3, ... ,12)? Che senso ha p(1,1) = 1?

Il risultato è 0,437815681...
Lanciare un dado alla volta per 12 volte (e segnare i numeri usciti ad ogni lancio) oppure contemporaneamente 12 dadi è lo stesso:rolleyes:
p(1,1) indica che, ovviamente, se lanci un dado, la probabilità che esca uno dei 6 numeri scritti sulle facce è ... il 100% (a meno che non si fermi di traverso, su uno spigolo :D)

Quote:

Erasmus (Scrivi 535327)
Il casino nello stendere la formula recursiva resta perché se la probabilità che il secondo dado dia esito distinto dal primo è 5/6, al terzo dado devo usare una probabilità condizionata dall'essere distinti o no i due esiti precedenti: se questi sono distinti ho probabilità 4/6 = 2/3 che il terzo lancio dia un esisto distinto da entrambi e se sono uguali ho probbilità 5/6 che il terzo esito sia distinto dai due precedenti (ed uguali). Il condizionamento si complica al crescere di k perché subito prima del k-esimo lancio posso avere n = 1 in 6 modi diversi, n=2 ... in molti più modi, ecc; e se k>6 ed ho già n = 6, ho probabilità 0 che il k-esimo lancio dia esisto distinto da ciascuno esito precedente.

La formula ricorsiva è semplicissima.
Poi, basta metterla in un foglio di calcolo per tirare fuori tutti i risultati che vuoi, per qualsiasi numero di dadi che lanci e per qualsiasi numero di numeri distinti che vuoi ottenere.

Quote:

Erasmus (Scrivi 535327)
Le dozzine distinte sono 6^12 e sono tutte equiprobabili.
Considero "esito possibile" del lancio di 12 dadi ciascuna di queste 6^12 = 2 176 782 336 distinte dozzine ( o numeri di 12 cifre in base 6).

Vado in cerca di quante sono quelle nelle quali non ci sono tutte le 6 "cifre".
Ma poi mi sono sorti almeno tre dubbi sulla correttezza del risultato. [Il terzo è un po' complicato da spiegare].
a) aspesi non può proporre di giocare con lui con probabilità di vincere minore di 1/2 ! :cool:

Probabilmente, i coefficienti giusti sono quelli che mi correggono la formula dandomi quelllo 0,5622 (circa) [complementare di 43,78%] invece di 0,470339 ... che ho trovato prima.

=> Idea!


(6·5^12 – 15·4^12 + 20·3^12 – 15·2^12 + 6·1^12)/ 6^12 = 0,56218431937882 ≈ 56,22%]

Nino II: migliora l'accuratezza e dimmi se l'avere tutte e quattro giuste le cifre che hai confermato ad astromauh è una pura coincidenza.

Ciao ciao

Erasmus, sei formidabile!!!!!!:ok:
E' perfetto!
La formula per calcolare i 6 numeri distinti con n>=6 è proprio:
Sum((-1)^i * Comb(6,i)*(6-i)^n per i=0....5
e quindi
a(n) = 6^n - C(6,5)*5^n + C(6,4)*4^n - C(6,3)*3^n + C(6,2)*2^n - C(6,1)
con n>=6

La sequenza A000920 è: (n=6, 7, 8, 9, 10, 11, 12, ...)
720, 15120, 191520, 1905120, 16435440, 129230640, 953029440,...
http://oeis.org/A000920

Ciao
Nino

aspesi 11-11-11 09:02

Re: Estrazioni casuali
 
Quote:

astromauh (Scrivi 535367)
Mah, vorrà dire che ho perso 10 euro. :cry:

Facciamo finta che me li hai dati... :D

Oltre al metodo trovato da Erasmus, si può procedere con questo ragionamento.
Faccio finta di lanciare 12 volte di seguito un dado anziché 12 dadi una volta (è lo stesso)
Chiamo p(n,k) la probabilità di avere n numeri diversi dopo k lanci.
Il problema chiede di trovare p(6,12)

Dopo il primo lancio ho logicamente p(1,1) = 1 (perché esce per forza un numero)
Dopo il secondo lancio posso avere ancora un numero (se si ha ripetizione di quello uscito nel primo lancio), oppure 2 numeri (negli altri casi).
Generalizzo:
Dopo il lancio k i numeri diversi che posso avere sono n se:
-al lancio k-1 ne avevo già n (ed esce uno dei numeri già usciti prima): questa probabilità è n/6
-oppure, al lancio k-1 ne avevo n-1 ed esce un numero nuovo: la probabilità in questo caso è (6-n+1)/6

Perciò:
p(n,k) = p(n,k-1) * n/6 + p(n-1,k-1) * (6-n+1)/6

A questo punto, basta fare una tabellina (inserendo la formula ricorsiva precedente):
..........1........... 2........... 3.......... 4........ 5......... 6
.......-----........-----.........------.......-----.....------......------
1.... 1,000000
2.... 0,166667.....0,833333....0,000000....0,000000....0,000000....0,000000
3.... 0,027778 ....0,416667....0,555556....0,000000....0,000000....0,000000
4.... 0,004630 ....0,162037....0,555556....0,277778....0,000000....0,000000
5.... 0,000772 ....0,057870....0,385802....0,462963....0,092593....0,000000
6.... 0,000129 ....0,019933....0,231481....0,501543....0,231481....0,015432
7.... 0,000021 ....0,006752....0,129029....0,450103....0,360082....0,054012
8.... 0,000004 ....0,002268....0,069016....0,364583....0,450103....0,114026
9.... 0,000001 ....0,000759....0,036020....0,277563....0,496614....0,189043
10... 0,000000 ....0,000254....0,018516....0,203052....0,506366....0,271812
11... 0,000000 ....0,000085....0,009427....0,144626....0,489656....0,356206
12... 0,000000 ....0,000028....0,004770....0,101131....0,456255....0,437816
13... 0,000000 ....0,000009....0,002404....0,069806....0,413923....0,513858
14... 0,000000.....0,000003....0,001208....0,047739....0,368204....0,582845
15... 0,000000.....0,000001....0,000606....0,032430....0,322750....0,644213

La somma di ogni riga è ovviamente 1

:hello:

astromauh 11-11-11 09:28

Re: Estrazioni casuali
 
Quote:

aspesi (Scrivi 535378)
Il risultato è 0,437815681...


Ho appena rilanciato il programma con mezzo-miliardo di tentativi.

Il risultato è


0.437583252

Mi sembra molto strano che ci possa essere un errore già a partire dalla quarta cifra decimale.

Secondo me, voi fate delle approssimazioni eccessive nei calcoli. :D


Il programma che fa il calcolo è elementare, ho sbagliato qualcosa?


for v=1 to volte
uno=0: due=0: tre=0: quattro=0: cinque=0: sei=0

for n=1 to 12
x= int(RND*6) + 1

if x=1 then uno=1
if x=2 then due=1
if x=3 then tre=1
if x=4 then quattro=1
if x=5 then cinque=1
if x=6 then sei=1
next

if uno=1 AND due=1 AND tre=1 AND quattro=1 AND cinque=1 AND sei=1 then ok=ok + 1
next

response.write("ok=" & ok/volte)

:hello:

aspesi 11-11-11 09:37

Re: Estrazioni casuali
 
Quote:

astromauh (Scrivi 535395)
Il risultato è

0.437583252

Mi sembra molto strano che ci possa essere un errore già a partire dalla quarta cifra decimale.

:hello:

Non so come mai sbaglia di più del 0,5 per mille.
Probabilmente è la funzione random

:hello:

astromauh 11-11-11 09:40

Re: Estrazioni casuali
 
Stranamente il risultato che ottengo assomiglia molto al mio numero di cellulare.
Te lo invio con un MP.


:D:D:D:D

astromauh 11-11-11 10:05

Re: Estrazioni casuali
 
Aspesi, aspetta a cantar vittoria, vediamo prima Mizarino che valore ottiene con il suo PC.

;)

aspesi 11-11-11 10:10

Re: Estrazioni casuali
 
Quote:

astromauh (Scrivi 535402)
Aspesi, aspetta a cantar vittoria, vediamo prima Mizarino che valore ottiene con il suo PC.

;)

Aspettiamo, allora...

Se vuoi, nel frattempo puoi provare l'altro quiz
http://www.trekportal.it/coelestis/s...400#post535400

:hello:


Tutti gli orari sono GMT. Attualmente sono le 14:20.

Powered by vBulletin versione 3.6.7
Copyright ©: 2000 - 2020, Jelsoft Enterprises Ltd.
Traduzione italiana a cura di: vBulletinItalia.it