Estás en una fiesta y escuchas una conversación entre Marta y su amiga.
En la conversación, Marta menciona que tiene un número secreto que es menor a 100.También da la siguiente información:
"El número se puede describir exactamente conociendo únicamente las respuestas a las siguientes cuatro preguntas:"
1) ¿Es el número divisible por dos?
2) ¿Es el número divisible por tres?
3) ¿Es el número divisible por cinco?
4) ¿Es el número divisible por siete?
Luego procede a susurrar las respuestas a estas preguntas a su amiga.
Desafortunadamente, debido al ruido ambiental en la fiesta, solo escuchas la respuesta a una de las preguntas.
Sin embargo, saber solo esta respuesta te permite determinar el número secreto de Marta.
A) ¿Qué pregunta y respuesta escuchaste?
B) Si la respuesta a esta pregunta es "Sí", ¿Cuál es el número secreto de Marta?
Si lo quieres compartir o guardar
La primera y sería 70.
ResponderEliminarHola. ¿Me podrían explicar la respuesta?
ResponderEliminarHola, Caminante,
ResponderEliminarToma los números del 1 al 99 y divídelos entre 2, 3, 5 y 7. Si sale que es divisible escribe una S y si no, una N. Por ejemplo, para el 15 obtendrías NSSN (no es divisible entre 2, sí entre 3, sí entre 5, no entre 7).
Observa los resultados que se repiten y elimínalos. Verás que solo te quedan dos números, 35 (NNSS) y 70 (SNSS). Son los únicos números que cumplen "El número se puede describir exactamente conociendo únicamente las respuestas a las siguientes cuatro preguntas".
Lo que diferencia a ambos números es si son o no divisibles entre 2, es decir la respuesta a la primera pregunta. Por tanto escuchó la respuesta a la primera pregunta.
Si la respuesta es SÍ, se trata del 70 (SNSS).
Muchas gracias Mmonchi por la explicación. Me ha quedado totalmente claro.
EliminarComo un aporte, me di a la tarea de construir un código en Python para poder resolver el caso. No es el más "puro" que digamos (apenas estoy aprendiendo), y la última parte todavía no está totalmente programada, pero creo que podrá ser de utilidad para explorar otras posibilidades.
Saludos desde Colombia.
# Creamos un array con numpy con los números del 1 a 99
import numpy as np
col0=[]
col2=[]
col3=[]
col5=[]
col7=[]
colt=[]
# Obtenemos la matriz con los valores de 1 a 99 y los residuos al ser divididos entre 2,3,5 y 7
# Si el residuo es distinto de cero, asignamos la letra N, de lo contrario la letra S
for i in range (1,100):
col0.append(i)
if (i)%2==0:
col2.append("S")
else:
col2.append("N")
if (i)%3==0:
col3.append("S")
else:
col3.append("N")
if (i)%5==0:
col5.append("S")
else:
col5.append("N")
if (i)%7==0:
col7.append("S")
else:
col7.append("N")
# Creamos en el vector colt un código que indica si hay o no divisiones enteras
# Los números que tengan combinaciones iguales no pueden ser reconocidos según las reglas del problema
# Deben ser números que no tengan combinaciones iguales
for j in range (len(col0)):
x=col2[j]+col3[j]+col5[j]+col7[j]
colt.append(x)
# Construimos un array con los vectores y buscamos los valores que se repite en la última columna (colt)
data=np.array([col0,col2,col3,col5,col7,colt])
datat=np.array([colt])
# Utilizando np.unique identificamos aquellas combinaciones que tengan frecuencias iguales a 1.
# Estas serían aquellos casos en que solo se cumpla una de las cuatro condiciones fijadas en el problema.
unique_elements= np.unique(datat, return_index=True, return_counts=True, axis=None)
print ("Esta matriz contiene:")
print ("Fila 1: Combinación de divisibilidad de cada número por 2, 3, 5 y 7.")
print (" Por ejemplo: NNNS significa que un número no fue divisible por 2, 3 ni 5, pero sí por 7.")
print ("Fila 3: Números que aplican para cada combinación. Por ejemplo, el número '34' (+1) fue encontrado una sola vez.")
print (np.asarray(unique_elements))
# Ahora buscamos los índices de esas frecuencias
respuestas=[]
for i in range(len(unique_elements[1])):
if unique_elements[2][i]==1:
resp=unique_elements[1][i]
respuestas.append(resp+1)
print ("Los siguientes números solo se presentan una vez:")
print (respuestas)
print ("Los dos números son divisibles por 3, 5 y 7, pero solo uno de ellos por 2.")
print ("Esto quiere decir que la respuesta es:")
print ("El número es divisible por 2.")
print ("El número es 70.")
Hola soy Solange, quiero decir que me pareció genial el problema, aunque me gustaría saber de qué página de internet tomaste la idea.
ResponderEliminarsaludos
Hola Solange,el problema lo vi en el blog data genetics:
Eliminarhttp://datagenetics.com/blog/june12018/index.html