Migliore risposta
Ci sono molte risposte interessanti a questa … domanda bizzarra … potrebbe anche tentare la mia fortuna suppongo ?
Quindi, ci viene dato: 2 + 2 = 6 e 1 + 3 =?
Metodo 1:
Questa domanda è in qualche modo etichettata sotto Trucchi e puzzle matematici e suppongo che possiamo sospendere tutta la logica matematica che conosciamo, ad esempio ceteris paribus.
A un esame più attento, vediamo che lunico la differenza tra le due equazioni è -1 (2 → 1) e +1 (2 → 3). Supponendo che ceteris paribus come accennato, la risposta dovrebbe anche sperimentare sia -1 e +1.
Pertanto, forse la risposta semplice è
1 + 3 = 6
Metodo 2:
E poiché questo è un puzzle, prendiamo le cose da unaltra prospettiva. Mentre altri metodi hanno iniziato a utilizzare gli alfabeti, proverò una tipica tecnica di sostituzione … anche se potrebbe essere difettosa.
Supponiamo che 2 = 3.
2u = 3 quindi, 1u = 1.5 e 3u = 4.5
Pertanto, 1 + 3 = 1.5 + 4.5 = 6
Metodo 3:
Vediamo che sono presenti 4 numeri (2, 2, 1, 3), due dei quali sono uguali (2) . Se dovessimo usare la moltiplicazione, cosa succederebbe se i numeri fossero divisi in entrambe le equazioni?
2 × 3 = 6. Siamo rimasti con 2 e 1.
Pertanto, 2 × 1 = 2 = 1 + 3 = 2.
Lì ci sono così tante risposte possibili e tutto si riduce alla nostra creatività nel piegare le leggi matematiche.
Aggiornamento: mi è piaciuto molto lapproccio della lettera al puzzle e alle mani verso il basso, deve essere il metodo più logico ma più adatto per un puzzle.
Risposta
Sembra che questo richieda il sovraccarico del simbolo +!
Che ne dici di questo? Se hai unespressione in cui un determinato numero intero – chiamalo Coniglio per motivi di discussione – appare su entrambi i lati di +, spetta a te raddoppiare Coniglio, quadrare il risultato e aggiungere Coniglio al quadrato. Quindi, 7 + 7 significa che devi raddoppiare 7, dando 14. Quadrato 14, dando 196. Infine, aggiungi 7 a 196, dando 203.
Questa sembra essere la parte facile. La parte interessante del puzzle, per me, è come scrivere una definizione di quel metodo + sovraccarico in Scala, in modo tale che il corpo della definizione possa usare + con il suo significato ordinario di semplice addizione, non un riferimento ricorsivo.
Dovrò grattarmi la testa su questo.
Aggiornamento: il seguente dialogo Scala REPL illustra un modo per dare + un nuovo significato, nel contesto di un nuovo tipo di dati chiamato 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)