Il numero atteso di tiri di dado richiede di fare una somma maggiore o uguale a K?


9

Un dado a 6 facce viene lanciato ripetutamente. Qual è il numero previsto di tiri richiesti per fare una somma maggiore o uguale a K?

Prima della modifica

P(Sum>=1 in exactly 1 roll)=1
P(Sum>=2 in exactly 1 roll)=5/6
P(Sum>=2 in exactly 2 rolls)=1/6
P(Sum>=3 in exactly 1 roll)=5/6
P(Sum>=3 in exactly 2 rolls)=2/6
P(Sum>=3 in exactly 3 rolls)=1/36
P(Sum>=4 in exactly 1 roll)=3/6
P(Sum>=4 in exactly 2 rolls)=3/6
P(Sum>=4 in exactly 3 rolls)=2/36
P(Sum>=4 in exactly 4 rolls)=1/216

Dopo la modifica

P(Sum>=1 in atleast 1 roll)=1
P(Sum>=2 in atleast 1 roll)=5/6
P(Sum>=2 in atleast 2 rolls)=1
P(Sum>=3 in atleast 1 roll)=4/6
P(Sum>=3 in atleast 2 rolls)=35/36
P(Sum>=3 in atleast 3 rolls)=1
P(Sum>=4 in atleast 1 roll)=3/6
P(Sum>=4 in atleast 2 rolls)=33/36
P(Sum>=4 in atleast 3 rolls)=212/216
P(Sum>=4 in atleast 4 rolls)=1

Non sono sicuro che questo sia corretto prima di tutto e penso che questa probabilità sia correlata al numero previsto di tiri?

Ma non so come procedere oltre. Sto procedendo nella giusta direzione?


Come hai ottenuto ? P(S2 in 2 rotoli)
Glen_b -Restate Monica

@Glen_b Devi ottenere un numero inferiore a 2 nel primo lancio che è 1. Quindi la probabilità di ottenere 1 è 1/6 e il secondo lancio può essere qualsiasi numero. se ottieni un numero maggiore o uguale a 2 nel primo lancio, non otterrai un secondo lancio.
Solito sospetto

1
Ah, vedo cosa sta succedendo. Non lo descrivi come "P (S \ geq 2 in 2 tiri)"; quell'espressione implica che il numero di tiri è fisso. Quello che vuoi è "P (esattamente 2 tiri richiesti per ottenere )" o "P (almeno 2 tiri richiesti per ottenere S 2 )". S2S2
Glen_b -Restate Monica

@Glen_b Sì, questa è la confusione. P (suppongo esattamente 2 tiri per ottenere S> 2). Alla fine voglio calcolare solo il numero previsto di tiri per raggiungere una somma maggiore di K?
Solito sospetto

@Glen_b dovrei usare almeno o esattamente per questo scopo? E come calcolare il numero previsto di rotoli per una somma maggiore come 10000?
Solito sospetto

Risposte:


2

Finora sono solo alcune idee per un altro approccio, più esatto, basato sulla stessa osservazione della mia prima risposta. Con il tempo estenderò questo ...

Innanzitutto, qualche notazione. Sia un dato intero positivo (grande). Vogliamo che la distribuzione di N , che è il numero minimo di tiri di un normale dado di uscire somma almeno K . Quindi, per prima cosa definiamo X i come risultato del lancio di dadi i , e X ( n ) = X 1 + + X n . Se riusciamo a trovare la distribuzione di X ( n ) per tutti n allora possiamo trovare la distribuzione di N usando P ( N KNKXioioX(n)=X1++XnX(n)nN e abbiamo finito.

P(Nn)=P(X1++XnK),

Ora, i valori possibili per sono n , n + 1 , n + 2 , , 6 n , e per k in quell'intervallo, per trovare la probabilità P ( X 1 + + X n = k ) , dobbiamo trovare il numero totale di modi per scrivere k come somma di esattamente n numeri interi, tutti nell'intervallo 1 , 2 , ...X1++Xnn,n+1,n+2,...,6nKP(X1++Xn=K)Kn . Ma quella si chiama composizione intera ristretta, un problema ben studiato in combinatoria. Alcune domande correlate su SE matematica sono reperibili su https://math.stackexchange.com/search?q=integer+compositions1,2,...,6

Quindi, cercando e studiando la letteratura combinatoria, possiamo ottenere risultati precisi e precisi. Lo seguirò, ma dopo ...


2

Esiste una semplice formula chiusa in termini di radici di un polinomio di grado 6.

In realtà è un po 'più semplice considerare un dado equo generale con d2 facce etichettati con i numeri 1,2,,d.

Sia ek il numero previsto di rotoli necessari per uguagliare o superare k. Per k0, ek=0. Altrimenti l'aspettativa è uno in più dell'aspettativa del numero di rotoli per raggiungere il valore immediatamente precedente, che sarebbe tra kd,kd+1,,k1, da dove

(1)ek=1+1d(ekd+ekd+1++ek1).

Questa relazione di ricorrenza lineare ha una soluzione nella forma

(2)ek=2kd+1+i=1daiλioK

dove λio sono i d complesse radici del polinomio

(3)Td-1d(Td-1+Td-2++T+1).

Le costanti un'io si trovano applicando la soluzione (2) ai valori k=(d1),(d2),,1,0 dove ek=0 in ogni caso. Ciò fornisce un insieme di equazioni d lineari nelle costanti d e ha una soluzione unica. Che la soluzione funzioni può essere dimostrata verificando la ricorrenza (1)usando il fatto che ogni radice soddisfa (3):

1+1dΣj=1deK-j=1+1dΣj=1d(2(K-j)d+1+Σio=1dun'ioλioK-j)=2Kd+1+Σio=1dun'ioλioK-d[1d(1+λio++λiod-1)]=2Kd+1+Σio=1dun'ioλioK-dλiod=2Kd+1+Σio=1dun'ioλioK=eK.

Questa soluzione a forma chiusa ci offre buoni modi per approssimare la risposta e valutarla accuratamente. (Per valori da piccoli a modesti di K, l'applicazione diretta della ricorrenza è una tecnica computazionale efficace.) Ad esempio, con d=6 possiamo facilmente calcolare

e1000000=285714.761905...

Per approssimazioni, ci sarà una radice unica più grande λ+=1 quindi alla fine (per K sufficientemente grande ) il termine λ+K dominerà i termini d in (2).L'errore diminuirà in modo esponenziale in base alla seconda norma più piccola delle radici. Continuando l'esempio con K=6, il coefficiente di λ+ è a+=0.4761905 e la norma più piccola successiva è 0.7302500. (Per inciso, l'altro ai tendono ad essere molto vicino a1 nel formato.) Quindi possiamo approssimare il valore precedente,

e10000002×1066+1+0.4761905=285714.761905

con un errore dell'ordine di 0.730250010610314368.


Per dimostrare quanto sia pratica questa soluzione, ecco il Rcodice che restituisce una funzione per valutare ek per qualsiasi k (nell'ambito dei calcoli in virgola mobile a doppia precisione) e non eccessivamente grande d (si bloccherà una volta d100 ):

die <- function(d, mult=1, cnst=1, start=rep(0,d)) {
  # Create the companion matrix (its eigenvalues are the lambdas).
  X <- matrix(c(0,1,rep(0,d-1)),d,d+1)
  X[, d] <- mult/d
  lambda <- eigen(X[, 1:d], symmetric=FALSE, only.values=TRUE)$values

  # Find the coefficients that agree with the starting values.
  u <- 2*cnst/(d+1)
  a <- solve(t(outer(lambda, 1:d, `^`)), start - u*((1-d):0))

  # This function assumes the starting values are all real numbers.
  f <- Vectorize(function(i) Re(sum(a * lambda ^ (i+d))) + u*i)

  list(f=f, lambda=lambda, a=a, multiplier=mult, offset=cnst)
}

Come esempio del suo utilizzo, qui calcola le aspettative per K=1,2,...,16:

round(die(6)$f(1:10), 3)

1.000 1.167 1.361 1.588 1.853 2.161 2.522 2.775 3.043 3.324 3.613 3.906 4.197 4.476 4.760 5.046

λioun'ioun'+.

(Se sei curioso di sapere a cosa dieservono gli altri parametri , esegui die(2, 2, 0, c(1,0))$f(1:10)e vedi se riconosci l'output ;-). Questa generalizzazione ha aiutato a sviluppare e testare la funzione.)


+1. La funzione diedà un errore per me: object 'phi' not found.
COOLSerdash,

1
@COOL Grazie per il controllo. Il colpevole era una modifica dell'ultimo minuto del nome della variabile (da phia a) in modo che corrispondesse al testo. L'ho risolto (e verificato).
whuber

1

non c'è modo di ottenere il numero esatto di tiri previsti in generale, ma per un K.

Sia N l'evento del rollio previsto per ottenere la somma => K.

per K = 1, E (N) = 1

E(N)=(56+2*1)/(56+1)=1711

e così via.

Sarà difficile ottenere E (N) per K. grandi, ad esempio, per K = 20 dovrai aspettarti da (4 tiri, 20 tiri)

K(Sum) followS N(3.5N,35N12)

K-3.5N35N12=Zα
α=1-confiodenceZ0.01=2.31,Z0.001=2.98

Conosci K, Z (in ogni caso) ........ allora puoi ottenere N = E (N) con una certa confidenza% risolvendo l'equazione.


2
Come hai calcolato queste probabilità? Come sei arrivato a quell'equazione E (N)?
Solito sospetto

@UsualSuspect P (Somma> = 2 in 1 tiro) = 5/6 (sai) P (Somma> = 2 in 2 tiri) = 1 (perché devi ottenere la somma di almeno 2 da 2 tiri) e per E (N ) ......... è solo una media attesa
Hemant Rupani,

Mi spiace, non ne ho parlato. Non è almeno, esattamente 2 rotoli. Ora ho capito l'equazione E (N).
Solito sospetto

@UsualSuspect ohh! a proposito se hai bisogno di E (N) per un particolare K, allora posso farcela :).
Hemant Rupani,

ho bisogno di k = 20 e k = 10000. È meglio se mi spieghi piuttosto che dare risposte dirette.
Solito sospetto

0

Darò un metodo per trovare una soluzione approssimativa. Innanzitutto, lasciaXioioNK

P(Nn)=P(X1+X2++XnK)
NXioi=1,2,,nnn

Xio

M(T)=EetXio=16(et+e2t+e3t+e4t+e5t+e6t)
n
Kn(t)=nlog(16Σio=16eiot)
K

 DD <- function(expr, name, order = 1) {
        if(order < 1) stop("'order' must be >= 1")
        if(order == 1) D(expr, name)
        else DD(D(expr, name), name, order - 1)
     }

make_cumgenfun  <-  function() {
    fun0  <-  function(n, t) n*log(mean(exp((1:6)*t)))
    fun1  <-  function(n, t) {}
    fun2  <-  function(n, t) {}
    fun3  <-  function(n, t) {}
    d1  <-  DD(expression(n*log((1/6)*(exp(t)+exp(2*t)+exp(3*t)+exp(4*t)+exp(5*t)+exp(6*t)))),  "t", 1)
    d2  <-  DD(expression(n*log((1/6)*(exp(t)+exp(2*t)+exp(3*t)+exp(4*t)+exp(5*t)+exp(6*t)))),  "t", 2)
    d3  <-  DD(expression(n*log((1/6)*(exp(t)+exp(2*t)+exp(3*t)+exp(4*t)+exp(5*t)+exp(6*t)))),  "t", 3)
    body(fun1)  <-  d1
    body(fun2)  <-  d2
    body(fun3)  <-  d3
    return(list(fun0,  fun1,  fun2,  fun3))
}

Successivamente, dobbiamo risolvere l'equazione del punto di sella.

Questo è fatto dal seguente codice:

funlist  <-  make_cumgenfun()

# To solve the saddlepoint equation for n,  k:
solve_speq  <-   function(n, k)  {# note that n+1 <= k <= 6n is needed
    Kd  <-  function(t) funlist[[2]](n, t)
    k  <-  k-0.5
    uniroot(function(s) Kd(s)-k,  lower=-100,  upper=1,  extendInt="upX")$root
}

K

Funzione per restituire la probabilità di coda:

#

Ghelp  <-  function(n, k) {
    stilde  <-  solve_speq(n, k)
    K  <-  function(t) funlist[[1]](n, t)
    Kd <-  function(t) funlist[[2]](n, t)
    Kdd <- function(t) funlist[[3]](n, t)
    Kddd <- function(t) funlist[[4]](n, t)
    w2tilde  <-  sign(stilde)*sqrt(2*(stilde*(k-0.5)-K(stilde)))  
    u2tilde  <-  2*sinh(stilde/2)*sqrt(Kdd(stilde))
    mu  <-  Kd(0)
    result  <- if (abs(mu-(k-0.5)) <= 0.001) 0.5-Kddd(0)/(6*sqrt(2*pi)*Kdd(0)^(3/2))  else
    1-pnorm(w2tilde)-dnorm(w2tilde)*(1/w2tilde - 1/u2tilde)
    return(result)
}
G  <- function(n, k) {
      fun  <- function(k) Ghelp(n, k)
      Vectorize(fun)(k)
  }

P(Nn)=P(X1+X2++Xnk)=1P(X1++Xnk+1)=1G(n,k+1)
G

K=20n=20

N19

> 1-G(20, 21)
[1] 2.220446e-16

N10

> 1-G(10, 21)
[1] 0.002880649

E così via. Usando tutto questo, puoi ottenere tu stesso un'approssimazione delle aspettative. Questo dovrebbe essere molto meglio delle approssimazioni basate sul teorema del limite centrale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.