cafe_misc
Thread Id: 27393
Thread Name: Reto de "sumas"
Hola a todos, coloco este reto para ver si alguien lo consigue adivinar.
Yo no lo he conseguido..
El caso es el siguiente:
Tenemos 3 posiciones:
Posicion 0: valor "X" (puede tener 4 valores maximos distintos, de 0 a ff)
Posicion 1: valor "X" (puede tener 4 valores maximos distintos de 0-ff)
Posicion 2: valor "x"(puede teber 3 valores maximos distintos de 0-ff)
Y bueno, el reto esta en que por cada combinacion de numeros posibles (4*4*3= 48 posibilidades distintas) al sumar los 3 valores nuca se repita el resultado.
¿Dificil eh? He probado muchas combinaciones, y nada de nada xD
X ejemplo probe:
Pos 0: 0,1,2
Pos 1: 3,4,5
Pos 2: 6,7,8
Como veis al sumar esas cifras se repetira alguna.(x ejemplo 8+4+0 = 12 al igual que 6+4+2=12) por lo tanto ya combinacion de nimeros no vale.
Un saludo y a ver esas mentes prodijiosas!!
No acabo de entender las instrucciones.
¿Qué son exactamente estas posiciones? ¿Cual es exactamente la condición?
Quizá me fallan las habilidades de comprensión, pero creo que no seré el único que no consigue entender el problema.
Por lo que entiendo es poner 4, 4, y 3 numeros distintos y que no haya forma de que sumandolos te dé dos veces un mismo numero; personalmente pienso que si es asi, es imposible.
Explicare mejor el concepto:
Posibilidades:
Normal = valor
Bosque = valor
Agua = valor
Montaña = valor
Invierno = valor
Primavera = valor
Verano = valor
Otoño = valor
Mañana = valor
Dia = valor
Noche = valor
La estructura de los pokemon seria: [ruta][estacion][etapa_dia].
Estas se les asigna un valor para saber en que momento estamos.
Y se suman los tres para saber que offset cargar. (Gracias a dicha suma permite saber la combinacion de tipos que hay, pero si esta da resuktados iguales estamos jodidos xD)
En realidad es ese el ejemplo real..
Bueno, si las sumas son de 3 números, uno de cada posición, estos ejemplos harían (creo, los he generado automaticamente):
[18, 132, 226, 87] [80, 246, 46, 151] [99, 199, 23]
[50, 98, 217, 74] [207, 67, 192, 150] [1, 229, 242]
[45, 52, 115, 234] [134, 118, 252, 194] [111, 79, 90]
PD: El código, python:
import random
def test(a, b, c):
done = []
for i1 in a:
for i2 in b:
for i3 in c:
r = i1 + i2 + i3
if r in done:
return False
done.append(r)
return done
while True:
a = [int(random.random()*0xFF) for i in range(4)]
b = [int(random.random()*0xFF) for i in range(4)]
c = [int(random.random()*0xFF) for i in range(3)]
if test(a, b, c):
print(a, b, c)
break