Meilleure réponse
Il y a beaucoup de réponses intéressantes à cette… question bizarre… autant tenter ma chance je suppose ?
Donc, on nous donne: 2 + 2 = 6 et 1 + 3 =?
Méthode 1:
Cette question est en quelque sorte étiquetée sous Trucs et énigmes mathématiques et je suppose que nous pouvons suspendre toute logique mathématique que nous connaissons, disons ceteris paribus.
En y regardant de plus près, nous voyons que le seul la différence entre les deux équations est -1 (2 → 1) et +1 (2 → 3). En supposant que ceteris paribus comme mentionné, la réponse doit également connaître les deux -1 et +1.
Par conséquent, la réponse simple est peut-être
1 + 3 = 6
Méthode 2:
Et comme il sagit dun puzzle, prenons les choses sous un autre angle. Alors que dautres méthodes ont commencé à utiliser des alphabets, je vais essayer une technique de substitution typique … même si elle peut être imparfaite.
Supposons que 2 = 3.
2u = 3 donc donc, 1u = 1,5 et 3u = 4,5
Par conséquent, 1 + 3 = 1,5 + 4,5 = 6
Méthode 3:
On voit quil y a 4 nombres présents (2, 2, 1, 3), dont deux sont identiques (2) . Si nous devions utiliser la multiplication, que se passerait-il si les nombres étaient divisés en deux équations?
2 × 3 = 6. Il nous reste avec 2 et 1.
Par conséquent, 2 × 1 = 2 = 1 + 3 = 2.
Là il y a tellement de réponses possibles et tout se résume à notre créativité dans la flexion des lois mathématiques.
Mise à jour: Jai vraiment aimé lapproche par lettres du puzzle et des mains vers le bas, cela doit être la méthode la plus logique et la plus appropriée pour un puzzle.
Réponse
On dirait que cela appelle à surcharger le symbole +!
Et ça? Si vous avez une expression où un entier donné – appelez-le Rabbit pour le plaisir de la discussion – apparaît des deux côtés de +, il vous incombe de doubler Rabbit, de mettre au carré le résultat et dajouter Rabbit au carré. Donc, 7 + 7 signifie que vous devez doubler 7, ce qui donne 14. Carré 14, ce qui donne 196. Enfin, ajoutez 7 à 196, ce qui donne 203.
Cela semble être la partie facile. La partie intéressante du puzzle, pour moi, est de savoir comment écrire une définition de cette méthode surchargée + en Scala, de sorte que le corps de la définition puisse utiliser + avec sa signification ordinaire daddition simple, pas une référence récursive.
Je vais devoir me gratter la tête à ce sujet.
Mise à jour: Le dialogue Scala REPL suivant illustre une manière de donner + un nouveau sens, dans le contexte dun nouveau type de données nommé 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)