La mejor respuesta
Hay muchas respuestas interesantes a esta … pregunta extraña … también podría probar suerte, supongo ?
Entonces, se nos da: 2 + 2 = 6 y 1 + 3 =?
Método 1:
Esta pregunta de alguna manera está etiquetada en Trucos y acertijos matemáticos y supongo que podemos suspender toda la lógica matemática que conocemos, digamos ceteris paribus.
Tras una inspección más cercana, vemos que el único La diferencia entre ambas ecuaciones es -1 (2 → 1) y +1 (2 → 3). Suponiendo que ceteris paribus como se mencionó, la respuesta también debería experimentar ambos -1 y +1.
Por lo tanto, posiblemente la respuesta simple sea
1 + 3 = 6
Método 2:
Y dado que este es un rompecabezas, tomemos las cosas desde otra perspectiva. Si bien otros métodos han comenzado a usar alfabetos, intentaré una técnica de sustitución típica … aunque puede ser defectuosa.
Supongamos que 2 = 3.
2u = 3, por lo tanto, 1u = 1.5 y 3u = 4.5
Por lo tanto, 1 + 3 = 1.5 + 4.5 = 6
Método 3:
Vemos que hay 4 números presentes (2, 2, 1, 3), dos de los cuales son iguales (2) . Si usáramos la multiplicación, ¿qué pasaría si los números se dividieran en ambas ecuaciones?
2 × 3 = 6. Nos quedamos con 2 y 1.
Por lo tanto, 2 × 1 = 2 = 1 + 3 = 2.
Allí hay tantas respuestas posibles y todo se reduce a nuestra creatividad para doblar las leyes matemáticas.
Actualización: Me gustó mucho el enfoque de letras para el rompecabezas y las manos abajo, tiene que ser el método más lógico pero más apropiado para un rompecabezas.
Responder
¡Parece que esto requiere sobrecargar el símbolo +!
¿Qué tal esto? Si tiene una expresión en la que un entero dado (llámelo Conejo por el bien de la discusión) aparece en ambos lados de +, le corresponde a usted duplicar Conejo, elevar al cuadrado el resultado y agregar Conejo al cuadrado. Entonces, 7 + 7 significa que debes duplicar 7, dando 14. Cuadrado 14, dando 196. Finalmente, suma 7 a 196, dando 203.
Esa parece ser la parte fácil. La parte interesante del rompecabezas, para mí, es cómo escribir una definición de ese método + sobrecargado en Scala, de modo que el cuerpo de la definición pueda usar + con su significado ordinario de suma simple, no una referencia recursiva.
Tendré que rascarme la cabeza sobre eso.
Actualización: El siguiente diálogo de Scala REPL ilustra una forma de dar + un nuevo significado, en el contexto de un nuevo tipo de datos llamado Rabbit.
scala> case class Rabbit(i: Int) {def +(y:Rabbit):Int=4*i*i+y.i}
defined class Rabbit
scala> Rabbit(7)
res5: Rabbit = Rabbit(7)
scala> res5+res5
res6: Int = 203
scala> (1 to 7).map(Rabbit(\_)).map(r=>r+r)
res7: scala.collection.immutable.IndexedSeq[Int] = Vector(5, 18, 39, 68, 105, 150, 203)