Pular para o conteúdo principal

A hard logic problem - The escape of blue eyed vampires


Once upon a time, a vampire clan lived peacefully on an island (as long as vampire clans can live peacefully). Then, a demon lord came, overwhelmed the vampires and became the ruler of the island. The demon didn't want any vampire to escape so he created a gargoyle to guard the only way out. This gargoyle was a fantastic creature, so powerful that he was kept petrified for the whole time until a vampire appears. Then he awakened and started to fight until seeing no more vampire "alive" (as far a vampire can be alive). All vampires crazy enough to try were killed only left a hundred of vampires. There was a catch, of course. The gargoyle was not perfectly designed. It did not awaken when blue eyes vampires appeared. And all remaining vampire were blue eyes but as you know vampires cannot see him/her selves on reflections. For any reason, they were not aware of their eye colors.

Besides all that, blue eyed vampires didn't like each other (so they would never say to each other whether or not they had blue eyes if it would allow the other be free even it would free them) and they were too coward to try to challenge the odds against the gargoyle. They would try only if they were absolutely sure.

That was the situation for years until a succubus came to this island to send a message to the demon lord. (The message is not important for our story _ The important thing is that succubus realized the situation and wanted to mess the situation up). The demon put an imp to follow the succubus for the time she was in the island to be sure the visitor would not "disturb" the environment. Before she went back, there was a dinner where all vampires were invited and the demon asked her: "Would you like to say anything to the crowd before you go? By the way, if you say something they don't know, you die". She looked at the crowd and said one phrase. The next day she left the island.

For a time, the island was unusually quiet. But, in the end of 100 days, all vampires had gone.

Question: What did the succubus say to the vampire crowd?

Important information that all vampires and the succubus knew:
_ all vampires were unnaturally smart.
_ they would take one day to leave the island.
_ if they were sure about the color of their eyes, they would escape the island for sure.
_ they became aware of the gargoyle and the gargoyle weakness in different time.

Comentários

Postagens mais visitadas deste blog

Expressões, preconceito e racismo

Expressões preconceituosas e racistas Antes de alguma outra frase, primeiro peço licença para falar de mais um assunto do qual não domino. Falo por acreditar que um leigo presta serviço maior ao debater assunto com base em fontes (ainda que seja uma Wikipedia) e no pensamento lógico do que simplesmente se manter mudo a questões do cotidiano. Em voga agora está em falar quais são ou eram as expressões preconceituosas e racistas que até a pouco eram toleradas em muitos meios. Como é covarde dizer que em boca fechada não entra racismo. O racismo não é perpetrado apenas por quem profere mas por quem se cala à agressão perpetrada a outrem. Mas veremos que a questão é muito mais complexa que os cães raivosos do politicamente correto querem dizer. Tomo aqui a palavra racista, como sendo algo usado para impor a dominação de uma “raça” sobre outra. Portanto, a acusação de racismo vai muito além da mera acusação de preconceito. Não tenho o menor apreso por vitimismo barato, onde expressões q...

Curry with JS

Partial application and currying with Javascript In the strict way, currying is the technique of transforming a function that takes multiple arguments (a tuple of arguments) to one function that receive only one. In such way, currying techniques allow transform one multi-parameter function in a chain of functions, each one with a single argument. Looks complicated? Blah.. it is not true. In this little article, we are actually more interesting in partial applications. Let’s take the Mozilla Example for replace function in String. As we know, we can use a “replacer” function as paramenter for replace method in String object. Let’s say that we want to split a String defined by a non-numerical part, a numerical part and finally a non-alphanumeric part. Here is how: function replacer(match, p1, p2, p3, offset, string){ // p1 is nondigits, p2 digits, and p3 non-alphanumerics return [p1, p2, p3].join(' - '); }; We can try it as usual… var newString = "abc12345#$*%...