13 votos

Espera Suma de 30 colindado mueren rollos

Rollo de 30 colindado muere. Agregar cada consecutivos de resultados. Deja de rodar cuando la suma >= 300. ¿Cuál es el resultado más probable de la suma?

20voto

Shabaz Puntos 403

Claramente $300$. Ha $30$ de posibilidades por lo que la suma era antes, mientras que para $329$ sólo tiene uno. Si el objetivo está por encima del valor máximo en el morir, lo más probable es lugar de parada es el destino. Deje $P(n)$ ser la posibilidad de que $n$ es el último total antes de llegar o pasar a $300$. Se puede depender de $n$, pero es mayor que cero para todos los $270 \le n \le 299$. La posibilidad de golpear $300$ $\sum_{i=270}^{299}P(i)\frac 1{i-269}.$ $\frac 1{i-269}$ término viene porque sabemos que tenemos que rodar un número lo suficientemente grande para golpear o exceder $300$, pero aceptable números son igualmente distribuidos. La posibilidad de golpear $301$ $\sum_{i=271}^{299}P(i)\frac 1{i-269}.$ La probabilidad de que te golpeó $302$ $\sum_{i=272}^{299}P(i)\frac 1{i-269}.$ y así sucesivamente hasta que la oportunidad de golpear $329$ $\sum_{i=299}^{299}P(i)\frac 1{i-269}.$ Cada una de las sucesivas suma tiene uno menos positiva plazo, de modo que las sumas son estrictamente decreciente.

10voto

Ross Millikan respuesta se basa en el análisis matemático, pero para entender su solución escribí un programa y prueba de todos modos. Aquí están mis resultados.

Código De Matlab Utilizado

trials = 1000000;
results = zeros(1,trials);
for n = 1:trials
   sum = 0;
   while sum < 300
       sum = sum + ceil(30*rand);
   end
   results(n) = sum;
end
hist(results,30);

Resultados

enter image description here

Como dijo Ross Millikan, es fácil ver que 300 es el resultado más probable.

5voto

runeh Puntos 1304

Deje $p_n$ la probabilidad de éxito de la total $n$. Entonces podemos llegar a $300$ por llegar a $299$ y rolling $1$, o $298$ y rolling $2$, o ... por lo que el $$p_{300}=\frac 1{30}(p_{299}+p_{298}+ \dots + p_{270})$$

A continuación, llegamos a $301$ lanzando $2$ $299$ etc $$p_{301}=\frac 1{30}(p_{299}+p_{298}+\dots+p_{271})$$

El patrón es ahora evidente, como es el hecho de que las probabilidades disminuyen a medida que el número aumenta.

Yo no este post originalmente debido a que Ross Millikan había publicado la idea esencial. Las probabilidades por debajo de $300$ no necesitan ser idénticas, pero son positivos, y son intuitivamente similares en magnitud. Esto explica la steplike estructura de la gráfica en la de Phil solución. Pero ya sabemos que ellos son positivos, no necesitamos saber sus valores exactos para responder a la pregunta.

2voto

Hagen von Eitzen Puntos 171160

Contar el número de rollo de secuencias (de algunos fijos, sino arbitraria lengtzh $l$) que conducen a un resultado $s\ge 300$. Para cada secuencia que termina en $s>300$, obtenemos un sequnce que termina en exactamente $300$ mediante la sustitución de la última tirada $x$ (que debe ser$>s-300$)$x+300-s$. Esto muestra que el final de la suma de la $300$ es al menos tan probable como el final de la suma de la $s$. Ahora desde $300>30$, hay al menos una secuencia que termina en una suma de $300$, con una última tirada de $30$. Esta secuencia no es obtenido a partir de una secuencia que conduce a la suma de $s>300$ de las maneras descritas anteriormente. Por lo tanto, el número de secuencias (de al menos una longitud específica) que conduce a $300$ es estrictamente mayor thanthe número de secuencias de la misma longitud que conduce a la suma de $s$ si $s>300$. En consecuencia, $300$ es muy probable que el final de la suma.

2voto

Ricardo Saporta Puntos 121

Vi esta pregunta en las Estadísticas del Blog en twitter y pensé que sería divertido sim. Veo a alguien que ya lo hizo en matlab. Aquí está el código para un R simul (10 repeticiones de 50.000 simulaciones) y ggplot2 de salida con 2sd errorbars.

require(data.table)
require(ggplot2)
set.seed(1)

## PARAMETERS
reps   <- 10   # number of reps to conduct
simuls <- 5e4  # number of simulations per rep
Sides <- 30    # number of dungeons and dragon playing friends that I have
StopVal <- 300 # the min value to reach before stopping

## FUNCTIONS
rollDie <- function(StopVal=300) {
  total <- 0
  while (total < StopVal) {
    total <- total + sample(Sides, 1, TRUE)
  }
  return(c(total=total))
}

tally <- function(res, i) {
    ret <- rev(table(res))
    ret / sum(ret)
    data.frame(Roll=as.numeric(names(ret)), Prob=ret/sum(ret), Trial=i)
}

## SIMULATE
rolls   <- lapply(seq(reps), function(i) replicate(simuls, rollDie(StopVal)))
results <- lapply(seq(reps), function(i) tally(rolls[[i]], i))

## AGGREGATE
dat <- do.call(rbind, results)
dat <- data.table(dat, key="Roll")
dat[, c("MeanProb", "SDProb") := list(mean(Prob), sd(Prob)), by=Roll]


## PLOT
P <- ggplot(dat[Trial==1], aes(x=as.factor(Roll), y=MeanProb)) + 
    geom_bar(stat="identity", fill="lightblue") +
    geom_errorbar(aes(ymin=MeanProb-(2*SDProb), ymax=MeanProb+(2*SDProb)), width=.3, color="red") +
    theme(axis.text.x = element_text(angle = 45, size=rel(0.75))) + 
    labs(x="Roll Total", y="Prob") + 
    ggtitle(paste0("d", Sides, " rolling X, X ≥ ", StopVal))

ggsave("~/d30_exceed300.png", plot=P)

P

ggplot2

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X