Jeśli 2 + 2 = 6, to 1 + 3 =?


Najlepsza odpowiedź

Jest wiele interesujących odpowiedzi na to… dziwaczne pytanie… równie dobrze mógłbym spróbować szczęścia ?

Zatem otrzymujemy: 2 + 2 = 6 i 1 + 3 =?

Metoda 1:

To pytanie jest w jakiś sposób oznaczone w sekcji Mathematical Tricks and Puzzles i przypuszczam, że możemy zawiesić całą logikę matematyczną, którą znamy, powiedzieć ceteris paribus.

Po dokładniejszym przyjrzeniu się widzimy, że jedyny różnica między obydwoma równaniami to -1 (2 → 1) i +1 (2 → 3). Zakładając ceteris paribus , jak wspomniano, odpowiedź powinna również występować zarówno -1 i +1.

Dlatego prawdopodobnie najprostsza odpowiedź to

1 + 3 = 6

Metoda 2:

A ponieważ jest to puzzle, weźmy rzeczy z innej perspektywy. Podczas gdy inne metody zaczęły używać alfabetów, spróbuję typowej techniki zastępowania… chociaż może być wadliwa.

Załóżmy, że 2 = 3.

2u = 3, więc 1u = 1,5 i 3u = 4,5

Dlatego 1 + 3 = 1,5 + 4,5 = 6

Metoda 3:

Widzimy, że są obecne 4 liczby (2, 2, 1, 3), z których dwie są takie same (2) . Gdybyśmy mieli użyć mnożenia, co by było, gdyby liczby zostały podzielone na oba równania?

2 × 3 = 6. Zostało nam z 2 i 1.

Dlatego 2 × 1 = 2 = 1 + 3 = 2.

Tam jest tak wiele możliwych odpowiedzi, a wszystko sprowadza się do naszej kreatywności w naginaniu praw matematycznych.

Aktualizacja: bardzo podobało mi się podejście literowe do łamigłówki i wskazówki w dół, musi to być najbardziej logiczna, ale najlepiej dopasowana metoda układanki.

Odpowiedź

Wygląda na to, że wymaga to przeciążenia symbolu +!

A co powiesz na to? Jeśli masz wyrażenie, w którym dana liczba całkowita – nazwij ją Królikiem dla celów dyskusji – pojawia się po obu stronach +, Twoim obowiązkiem jest podwojenie Królika, podniesienie wyniku do kwadratu i dodanie Królika do kwadratu. Zatem 7 + 7 oznacza, że ​​musisz podwoić 7, dając 14. Kwadrat 14, dając 196. Na koniec dodaj 7 do 196, dając 203.

Wydaje się, że to łatwa część. Dla mnie interesującą częścią układanki jest to, jak napisać definicję tej przeciążonej + metody w Scali, tak aby treść definicji mogła używać znaku + ze zwykłym znaczeniem prostego dodawania, a nie rekursywnego odniesienia.

Będę musiał podrapać się w głowę.

Aktualizacja: Poniższe okno dialogowe REPL Scala ilustruje sposób nadania + nowego znaczenia w kontekście nowego typu danych o nazwie 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)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *