20 votos

Probabilidad de que la suma de tres números enteros (de 1 a 100) sea superior a 100

Tengo una urna con $100$ bolas. Cada bola tiene un número, desde $1$ a $100$ . Saco tres bolas de la urna sin ponerlas de nuevo en la urna. Sumo los tres números obtenidos. ¿Cuál es la probabilidad de que la suma de los tres números sea mayor que $100$ ?

¿Cómo explicar el procedimiento para calcular esta probabilidad?

13voto

Roger Hoover Puntos 56

Tenemos que contar el número de subconjuntos de tres elementos de $\{1,\ldots,100\}$ cuya suma es mayor que $100$ o $\leq 100$ . Para empezar, tenemos que el número de puntos de la red $(x,y,z)\in[1,100]^3$ tal que $(x+y+z)\leq 100$ está dada por: $$\sum_{x=1}^{98}\left|\{(y,z)\in[1,100]^2:y+z\leq 100-x\}\right|=\sum_{x=1}^{98}\binom{100-x}{2}=\binom{100}{3}.$$ Obviamente, no todos los puntos de la red dan un subconjunto válido. Entre los puntos de celosía contados anteriormente, hay $33$ puntos del tipo $(x,x,x)$ y $3\cdot 2417=7251$ puntos del tipo $(u,u,v),(u,v,u)$ o $(v,u,u)$ con $u\neq v$ . Por lo tanto, el número de subconjuntos de tres elementos de $\{1,\ldots,100\}$ con la suma $\leq 100$ está dada por: $$\frac{1}{6}\left(\binom{100}{3}-7251-33\right) = 25736 $$ por lo que la probabilidad deseada es: $$ 1-\frac{25736}{\binom{100}{3}} $$ que está entre $\frac{280}{333}$ y $\frac{37}{44}$ .

8voto

Will Green Puntos 758

A menudo es interesante comparar diferentes métodos, y suele ser una buena idea comprobar el trabajo teórico con métodos computacionales.

En este caso, es sencillo evaluar todas las formas posibles de elegir 3 bolas diferentes ( sin sustitución ) de 100 bolas (numeradas del 1 al 100), sumar todas las combinaciones y calcular la probabilidad exacta.

Aquí está Mathematica código para hacer esto ... sólo una línea:

Z = Map[Total, Permutations[Range[100],{3}]];  Count[Z, x_ /; x>100]/Length[Z]

... que devuelve la solución exacta como:

$$\text{P(sum > 100)} = \frac{33991}{40425}$$

... que es $\approx 0.840841$ . Sólo se tarda una fracción de segundo en evaluar.

Por el contrario :

La derivación teórica publicada por Jack D'Aurizio más arriba obtuvo el resultado:

$$\text{P(sum > 100)} = 1-\frac{26561}{\binom{100}{3}} \approx 0.835739$$

Esta última (respuesta aceptada) parece ser un error. [Actualización: ya está resuelto :)]

2voto

phord Puntos 121

Y en python:

import itertools
z=map(sum, itertools.permutations(range(1,101),3))
len(filter(lambda x: x>100, z))*1.0/len(z)

Rendimientos:

0.8408410636982065

1voto

user2023861 Puntos 436

Aquí hay una solución en C#. Mi solución original (errónea) dividida por 1000000. Estaba mal porque contaba los casos con números duplicados. Esta versión de abajo divide por el número correcto.

static void Main(string[] args)
{
    int count = 100 * 100 * 100;
    int hits = 0;

    for (int i = 1; i <= 100; i++)
    {
        for (int j = 1; j <= 100; j++)
        {
            for (int k = 1; k <= 100; k++)
            {
                if (i == j || i == k || j == k)
                    count--;

                else if (i + j + k > 100)
                    hits++;
            }
        }
    }

    Console.WriteLine(hits);
    Console.WriteLine(count);

    double percent = (double)hits / (double)count;
    Console.WriteLine(percent);

    Console.ReadLine();
}

1voto

SQB Puntos 1046

Como veo que otras soluciones dependen de un poco de programación, lo haré en SQL (que suele ser muy adecuado para problemas de combinatoria).

  WITH
     lvls AS (
        SELECT LEVEL AS lvl
        FROM dual
        CONNECT BY LEVEL <= 100
     ),
     combinations AS (
        SELECT
           l1.lvl AS nr_1,
           l2.lvl AS nr_2,
           l3.lvl AS nr_3,
           l1.lvl + l2.lvl + l3.lvl AS total,
           CASE
              WHEN l1.lvl + l2.lvl + l3.lvl > 100
              THEN 1
              ELSE 0
           END AS is_bigger
        FROM lvls l1
        JOIN lvls l2 ON (l1.lvl <> l2.lvl)
        JOIN lvls l3 ON (l1.lvl <> l3.lvl AND l2.lvl <> l3.lvl)
     )
  SELECT
     SUM(is_bigger) AS nr_bigger,
     COUNT(*) AS nr_total,
     SUM(is_bigger) / COUNT(*) AS chance
  FROM combinations;

Lo que produce (sin sorpresa) $$\frac{815784}{970200} \approx 0,840841 $$

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