Nejlepší odpověď
Existuje mnoho zajímavých odpovědí na tuto … bizarní otázku … možná také zkusím své štěstí, předpokládám ?
Takže máme: 2 + 2 = 6 a 1 + 3 =?
Metoda 1:
Tato otázka je nějak označena v části Matematické triky a hádanky a předpokládám, že můžeme pozastavit veškerou matematickou logiku, kterou známe, řekněme ceteris paribus.
Při bližším zkoumání zjistíme, že jediná rozdíl mezi oběma rovnicemi je -1 (2 → 1) a +1 (2 → 3). Za předpokladu, že ceteris paribus , jak již bylo uvedeno, by odpověď měla zažít i -1 a +1.
Proto je možná jednoduchá odpověď
1 + 3 = 6
Metoda 2:
A protože se jedná o hádanka, pojďme vzít věci z jiné perspektivy. Zatímco jiné metody začaly používat abecedy, zkusím typickou substituční techniku … i když může být chybná.
Předpokládejme, že 2 = 3.
2u = 3, tedy 1u = 1.5 a 3u = 4.5
Proto 1 + 3 = 1,5 + 4.5 = 6
Metoda 3:
Vidíme, že existují 4 čísla (2, 2, 1, 3), z nichž dvě jsou stejná (2) . Pokud bychom měli použít násobení, co kdyby byla čísla rozdělena do obou rovnic?
2 × 3 = 6. Zůstali jsme s 2 a 1.
Proto 2 × 1 = 2 = 1 + 3 = 2.
je tolik možných odpovědí a vše se odráží v naší kreativitě při ohýbání matematických zákonů.
Aktualizace: Opravdu se mi líbil písmenkový přístup k puzzle a ruce dolů, musí to být nejlogičtější, ale nejvhodnější metoda pro skládačku.
Odpověď
Vypadá to, že to vyžaduje přetížení symbolu +!
A co tohle? Máte-li výraz, kde se dané celé číslo – pro účely diskuse mu říkáme Králík – objeví na obou stranách +, je na vás, abyste Králíka zdvojnásobili, výsledek umocnili a přidali Králíka na druhou. Takže 7 + 7 znamená, že musíte zdvojnásobit 7, dát 14. Čtverec 14, dát 196. Nakonec přidat 7 k 196, dát 203.
To se zdá být snadná část. Zajímavou částí skládačky je pro mě to, jak napsat definici této metody přetížené + ve Scale, takže tělo definice může použít + se svým běžným významem jednoduchého sčítání, ne rekurzivní odkaz.
O tom si budu muset poškrábat hlavu.
Aktualizace: Následující dialog Scala REPL ilustruje způsob, jak dát + nový význam v kontextu nového datového typu s názvem Králík.
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)