![]() |
Re: Estrazioni casuali
Quote:
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: |
Re: Estrazioni casuali
Quote:
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: |
Re: Estrazioni casuali
Quote:
Accetti? Quote:
Ho visto adesso che anche ad Erasmus viene il tuo stesso risultato. Mah, vorrà dire che ho perso 10 euro. :cry: |
Re: Estrazioni casuali
Quote:
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:
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:
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 |
Re: Estrazioni casuali
Quote:
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: |
Re: Estrazioni casuali
Quote:
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: |
Re: Estrazioni casuali
Quote:
Probabilmente è la funzione random :hello: |
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 |
Re: Estrazioni casuali
Aspesi, aspetta a cantar vittoria, vediamo prima Mizarino che valore ottiene con il suo PC.
;) |
Re: Estrazioni casuali
Quote:
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 20:35. |
Powered by vBulletin versione 3.6.7
Copyright ©: 2000 - 2021, Jelsoft Enterprises Ltd.
Traduzione italiana a cura di: vBulletinItalia.it