1 votos

Probabilidad del número impar

¿Cómo puedo calcular la probabilidad de elegir al azar un número en el rango de 0 a 10000 donde exactamente dos de los dígitos es impar. Por ejemplo, 5001 o 1010, etc. y ¿cómo puedo hacer el mismo cálculo para un rango que comienza con un número impar, por ejemplo, 10000 a 20000?

1voto

Dada Puntos 11

Obsérvese que podemos, por ejemplo, tratar $5000$ como $05000$ la condición de que la izquierda tenga exactamente 2 dígitos Impares es equivalente a la condición de que la derecha tenga 2 dígitos Impares, porque el 0 es par.

El proceso de extraer un número al azar de $\{0,1, ..., 10000\}$ es por tanto equivalente a extraer una vez de una distribución que tiene probabilidad $10000/10001$ para 0 y $1/10001$ para 1 y 4 veces a partir de una distribución uniforme sobre $\{0, ..., 9\}$ y ordenar estos números.

Por lo tanto, buscamos la probabilidad de que exactamente dos de estos 5 dígitos sean Impares.

La probabilidad de que el primer dígito sea impar es $1/10001$ y para los otros 4 dígitos la probabilidad de ser impar es $0.5$ y el orden no importa, por lo tanto la probabilidad que se busca es:

$$ 10000/10001\cdot0.5^4 \cdot {{4}\choose{2}}$$

Si obtienes un 1 para el dígito de la izquierda no puedes obtener dos Dígitos Impares porque el número máximo es 10000 Si obtienes un 0 para el dígito de la izquierda necesitas dos dígitos Impares de los 4 restantes que es el término anterior

0voto

user3308043 Puntos 118

He intentado resolver esto usando R, ya que no soy muy bueno con las notaciones matemáticas.

test = 0:10000
test = data.frame(test)
length(test$test)

# 10001 different numbers are possible
# x of them fulfill the requirement of 2 odd digits.
# find x

amount_of_digits = table(nchar(as.character(test$test)))

# Based on chance.
# x out y do fulfill our criterion. So x/y * total number = number of cases we are looking for
# 1 digit -> zero chance to get 2 digits odd -> 0 out of 10
# 2 digits -> 1-9_0-9 -> both have to be odd -> 5/9*5/10 * 90 = 25 out of 90
5/9*5/10*90
# 3 digits -> 1-9_0-9_0-9 -> 2 out of 3 have to be odd -> 350 out of 900
5/9 * 5/10 * 5/10 * 900
5/9 * 5/10 * 5/10 * 900
4/9 * 5/10 * 5/10 * 900
5/9 * 5/10 * 5/10 * 900 + 5/9 * 5/10 * 5/10 *900 + 4/9 * 5/10 * 5/10 * 900
# 4 digits -> 1-9_0-9_0-9_0-9 -> 3375
4/9 * (5/10 * 5/10 * 5/10 * 9000) * 3 # first one beeing even and 2 out of 3 of the following are odd
5/9 * (5/10 * 5/10 * 5/10 * 9000) * 3 # first one beeing odd and 1 out of 3 of the following is odd
4/9 * (5/10 * 5/10 * 5/10 * 9000) * 3 + 5/9 * (5/10 * 5/10 * 5/10 * 9000) * 3
# 5 digits -> 10000 only 1 possible number which doesnt fulfill the requirements -> zero out of 1

# all together: 3750 out of 10000
0 +
5/9*5/10*90 +
5/9 * 5/10 * 5/10 * 900 + 5/9 * 5/10 * 5/10 *900 + 4/9 * 5/10 * 5/10 * 900 +
4/9 * (5/10 * 5/10 * 5/10 * 9000) * 3 + 5/9 * (5/10 * 5/10 * 5/10 * 9000) * 3 +
0

# this can be shortened down to a "amount based approach" instead of a chance based one too
# instead of saying: x/y * total number, we just look for x - this way we do not need the total amount of possibilitys
# but this only work if we can use the ful range of possible digis for each digit-space of the number
# like from 0 to 100, 0 to 1000 and so on. wont work for 15 to 210 cause here we can not use all the
# possible digits on the far right side digit
0 +
5*5 + # there are 5 different numbers in the first spot which can be combined with 5 different numbers in the second spot
5 * 5 * 5 + 5 * 5 * 5 + 4 * 5 * 5 +
4 * (5 * 5 * 5) * 3 + 5 * (5 * 5 * 5) * 3 +
0

# lets check if we are right. 

# function to count the odd digits in the numbers
# this gets pretty slow if number of digits get large
count_odd_digits = function(number)
{
  temp = unlist(strsplit(as.character(number), ""))
  sum_odd_digits = sum(temp %in% c(1,3,5,7,9))
  return(sum_odd_digits)
}

test$sum_odd_digits = NA
test$sum_odd_digits = apply(test, 1, count_odd_digits)

# how many of our digits have 2 odds
table(test$sum_odd_digits == 2)

# lets try to generalize this

# things we know
# each digit has 5/10 odds and 5/10 evens
# for all numbers having more than 1 digit:
# the most leftside digit of the number has a chance of 5/9 beeing odd and 4/9 beeing even
# for all numbers having 2 exactly 2 digits:
# the left side digit has to be odd to get a hit. all numbers with not odd leftside digit wont cause a hit

# the formula:
number_digits = 2 # change the desired number of digits here
(5 * 5^(number_digits - 1)  * (number_digits-1)) + # this gives the amount of possible numbers starting with a leading odd digit in the far left
  ifelse(number_digits <3,0,(4 * 5^(number_digits-1) * factorial(number_digits - 1)/(2*factorial(number_digits-1-2)))) # this gives the amount of numbers starting with an even digit on the far left side. Since a number with 2 digits only has to start with a leading odd digit to can have 2 odd digits total ive included the ifelse here.

# for 1 to 10000

number_digits = 2
amount2_digits = (5 * 5^(number_digits - 1)  * (number_digits-1)) + 
  ifelse(number_digits <3,0,(4 * 5^(number_digits-1) * factorial(number_digits - 1)/(2*factorial(number_digits-1-2))))

number_digits = 3
amount3_digits = (5 * 5^(number_digits - 1)  * (number_digits-1)) + 
  ifelse(number_digits <3,0,(4 * 5^(number_digits-1) * factorial(number_digits - 1)/(2*factorial(number_digits-1-2))))

number_digits = 4
amount4_digits = (5 * 5^(number_digits - 1)  * (number_digits-1)) + 
  ifelse(number_digits <3,0,(4 * 5^(number_digits-1) * factorial(number_digits - 1)/(2*factorial(number_digits-1-2))))

total = amount2_digits + amount3_digits + amount4_digits

test = 1:10000
test = data.frame(test)

# function to count the odd digits in the numbers
count_odd_digits = function(number)
{
  temp = unlist(strsplit(as.character(number), ""))
  sum_odd_digits = sum(temp %in% c(1,3,5,7,9))
  return(sum_odd_digits)
}

test$sum_odd_digits = NA
test$sum_odd_digits = apply(test, 1, count_odd_digits)

# how many of our digits have 2 odds
table(test$sum_odd_digits == 2)

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