Se 2 + 2 = 6, então 1 + 3 =?


Melhor resposta

Existem muitas respostas interessantes para esta … pergunta bizarra … pode muito bem tentar a sorte, suponho ?

Então, recebemos: 2 + 2 = 6 e 1 + 3 =?

Método 1:

Esta questão está de alguma forma marcada em Truques e quebra-cabeças matemáticos e suponho que podemos suspender toda a lógica matemática que conhecemos, digamos ceteris paribus.

Após uma inspeção mais detalhada, vemos que o único a diferença entre as duas equações é -1 (2 → 1) e +1 (2 → 3). Supondo que ceteris paribus conforme mencionado, a resposta também deve apresentar -1 e +1.

Portanto, possivelmente a resposta simples é

1 + 3 = 6

Método 2:

E como este é um quebra-cabeça, vamos ver as coisas de outra perspectiva. Embora outros métodos tenham começado a usar alfabetos, vou tentar uma técnica de substituição típica … embora possa ser falha.

Vamos supor que 2 = 3.

2u = 3, portanto, 1u = 1,5 e 3u = 4,5

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

Método 3:

Vemos que existem 4 números presentes (2, 2, 1, 3), dois dos quais são iguais (2) . Se fôssemos usar a multiplicação, o que aconteceria se os números fossem divididos em ambas as equações?

2 × 3 = 6. Restamos com 2 e 1.

Portanto, 2 × 1 = 2 = 1 + 3 = 2.

Há são tantas as respostas possíveis e tudo se resume à nossa criatividade em dobrar as leis matemáticas.

Atualização: Eu realmente gostei da abordagem de letras para o quebra-cabeça e as mãos para baixo, deve ser o método mais lógico, embora mais adequado para um quebra-cabeça.

Resposta

Parece que isso exige uma sobrecarga do símbolo +!

Que tal isso? Se você tiver uma expressão em que um determinado inteiro – chame-o de Coelho para fins de discussão – aparece em ambos os lados de +, é sua responsabilidade dobrar o Coelho, elevar o resultado ao quadrado e adicionar Coelho ao quadrado. Portanto, 7 + 7 significa que você deve dobrar 7, dando 14. Quadrado 14, resultando em 196. Finalmente, some 7 a 196, resultando em 203.

Essa parece ser a parte fácil. A parte interessante do quebra-cabeça, para mim, é como escrever uma definição desse método + sobrecarregado em Scala, de forma que o corpo da definição possa usar + com seu significado comum de adição simples, não uma referência recursiva.

Vou ter que coçar a cabeça sobre isso.

Atualização: A seguinte caixa de diálogo REPL do Scala ilustra uma maneira de dar um novo significado, no contexto de um novo tipo de dados chamado 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)

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *