1 pontos por GN⁺ 2024-09-04 | 1 comentários | Compartilhar no WhatsApp
  • O jogo de adivinhar números apresentado como um quebra-cabeça de entrevista da Microsoft pergunta sobre busca binária e valor esperado, mas a conclusão de que “é desfavorável para o participante” está errada sob a condição de que o número seja escolhido aleatoriamente
  • A regra consiste em restringir o intervalo com dicas para acertar um número entre 1 e 100, e a recompensa, que começa em $5, diminui à medida que aumenta o número de palpites; mais tarde, o participante passa a pagar
  • A observação de que Ballmer poderia escolher de propósito números mais difíceis está correta, e mesmo com a estratégia de busca binária há 37 números específicos que só são encontrados no 7º palpite, fazendo o participante pagar $1
  • Se o número for aleatório, tanto o código em Perl quanto os cálculos de probabilidade mostram que o valor esperado do jogo é $0.20, dando ao participante valor esperado positivo
  • Se a regra não tivesse uma faixa de recompensa de $0 e o participante começasse a pagar já a partir do 6º palpite, o valor esperado seria -$0.49, o que faria a conclusão de Ballmer bater com o resultado

Regras do quebra-cabeça de adivinhar números

  • Steve Ballmer apresenta, em um vídeo curto, um quebra-cabeça que teria usado com candidatos em entrevistas da Microsoft
  • Uma pessoa pensa em um número entre 1 e 100, e o candidato vai restringindo o intervalo a cada palpite com as dicas “mais alto” ou “mais baixo”
  • A recompensa varia de acordo com o número de palpites até acertar
    • 1º palpite: $5
    • 2º: $4
    • 3º: $3
    • 4º: $2
    • 5º: $1
    • 6º: $0
    • 7º: o participante paga $1
    • 8º: o participante paga $2
    • 9º: o participante paga $3
  • A pergunta central é: “Você deveria aceitar esse jogo?”
  • A conclusão de Ballmer foi “Não”, por dois motivos
    • ele pode escolher o número mais difícil possível de acertar
    • mesmo que escolha um número aleatório, o valor esperado seria negativo, então o participante acabaria pagando a Ballmer

Onde Ballmer estava certo: ele pode escolher o número de forma adversarial

  • O primeiro motivo, de que Ballmer pode escolher um número difícil, está correto
  • Sob a condição de que o número seja escolhido aleatoriamente, a estratégia ótima é a busca binária
  • Mesmo usando busca binária, se Ballmer escolher certos números, o participante terá de pagar $1
    • Esses números são 2, 5, 8, 11, 14, 17, 20, 22, 24, 27, 30, 33, 36, 39, 42, 45, 47, 49, 52, 55, 58, 61, 64, 67, 70, 72, 74, 77, 80, 83, 85, 87, 90, 93, 96, 98, 100
  • Nos demais números, o participante recebe $0 ou uma recompensa positiva
    • Os números que dão $0 são 1, 4, 7, 10, 13, 16, 19, 23, 26, 29, 32, 35, 38, 41, 44, 48, 51, 54, 57, 60, 63, 66, 69, 73, 76, 79, 82, 86, 89, 92, 95, 99
    • Nos outros números, o participante fica com parte do dinheiro de Ballmer

Exemplo com o número 59

  • No vídeo, Ballmer escolhe 59
  • Com a estratégia de busca binária, dá para encontrar em 5 palpites, na ordem 50, 75, 62, 56, 59
  • Nesse caso, a entrevistadora Emily Chang recebe $1
  • Os palpites reais de Emily Chang foram 50, 75, 60, 55, 57, 58, 59, o que ficou bem próximo da solução em 5 etapas da busca binária

Se a escolha for aleatória, o valor esperado é positivo

  • Se assumirmos que Ballmer escolhe o número aleatoriamente, a conclusão de que o valor esperado é negativo está errada
  • O código em Perl calcula, para cada número de 1 a 100, em quantos palpites a busca binária o encontra, soma as recompensas e tira a média
  • O resultado é que o valor esperado do jogo é $0.20
  • O mesmo resultado também pode ser confirmado do ponto de vista probabilístico
    • No 1º palpite, escolhe-se 50; a probabilidade de sucesso é 1/100 e a recompensa é $5
    • No 2º palpite, escolhe-se 25 ou 75; a probabilidade de sucesso é 2/100 e a recompensa é $4
    • No 3º palpite, escolhe-se 12, 37, 62, 88; a probabilidade de sucesso é 4/100 e a recompensa é $3
    • No 4º palpite, escolhe-se 6, 18, 31, 43, 56, 68, 81, 94; a probabilidade de sucesso é 8/100 e a recompensa é $2
    • Depois disso, segue-se o mesmo padrão
  • A fórmula do valor esperado é 5 * 1/100 + 4 * 2/100 + 3 * 4/100 + 2 * 8/100 + 1 * 16/100 + 0 * 32/100 + -1 * 37/100, e o resultado é 0.2
  • O último termo, -1 * 37/100, representa os números ainda possíveis depois de chegar ao fim da busca binária

Onde o erro pode ter surgido

  • Uma possibilidade é que Ballmer não tivesse pretendido a existência da faixa de recompensa de $0
  • Se a regra fosse “$5, $4, $3, $2, $1, depois o participante paga $1, $2, $3”, o valor esperado seria -$0.49
  • Nessa variação, a conclusão de Ballmer de que “o valor esperado é negativo” passa a bater com o resultado

1 comentários

 
GN⁺ 2024-09-04
Opiniões no Hacker News
  • O texto sugere que o entrevistado presume que o número é escolhido aleatoriamente, mas, na prática, Ballmer também poderia escolhê-lo de forma adversarial
    Porém, se o entrevistado presumir a escolha adversarial de Ballmer, pode definir o primeiro palpite de outro jeito e mudar as probabilidades. O autor original também considera começar pelo 50, mas, pela natureza da busca binária, escolher a cada vez um valor inicial deslocado de 50 por um offset aleatório impediria ataques adversariais simples contra a heurística, ao mesmo tempo em que preservaria a maior parte das vantagens da busca binária
    Gostaria de ver uma análise do algoritmo ideal de escolha de offset aleatório para lidar com esse tipo de escolha adversarial simples

    • Não seria surpresa um entrevistador cheio de confiança propor um brain teaser deixando de fora as premissas básicas e considerar a resposta errada porque ela violou uma premissa que ele não disse
      Imagino Ballmer dizendo: “Não, o primeiro palpite tem que começar pelo 50. Todo mundo sabe disso”
    • Como 7 palpites conseguem cobrir 128 números, dá para aplicar um offset de até ±14 sem afetar de fato o pior caso do algoritmo
      Ou seja, basta haver no máximo 64 números de cada lado do primeiro palpite. Como foi dito, escolher esse offset aleatoriamente neutralizaria a maioria dos exemplos adversariais que exploram a brecha da busca binária e talvez até eliminasse a própria vantagem da escolha adversarial. Mas, nesse caso, talvez fosse necessária uma distribuição ajustada ao offset
      Eu também gostaria de ver essa análise
    • Se Ballmer presumir novamente que a outra pessoa presume que ele é adversarial, então isso acaba entrando em teoria dos jogos
    • Não é bem assim. O fato de Ballmer poder escolher de forma adversarial é bem claro
      O ponto principal é que, mesmo se Ballmer escolher aleatoriamente e o entrevistado jogar de forma ótima em resposta, o valor esperado do jogo ainda é negativo; só isso já permite ter certeza de que é um jogo desvantajoso para o entrevistado
      O texto não responde à pergunta mais difícil: “então qual é o valor esperado real?”. Mas, se o entrevistado escolher aleatoriamente o primeiro palpite entre 40 e 60 e depois fizer busca binária a partir daí, parece difícil Ballmer ficar muito mais favorecido do que se tivesse escolhido o número inicial aleatoriamente
    • Rodei uma simulação, e essa estratégia não parece funcionar de fato. No começo eu também achei que algo parecido seria possível
      Em um equilíbrio de Nash encontrado pela simulação, o lado de Ballmer mistura escolhas perto das duas extremidades do intervalo. Nem sempre 1 ou 100, mas por ali. O resultado foi que o jogador Ballmer vence com um valor esperado de cerca de 0,85 a 1,00 dólar por rodada
      Como consequência, a estratégia de quem tenta adivinhar também passa a iniciar a busca binária nos extremos do intervalo, esperando acertar um dos lados. É parecido com um pênalti no futebol, em que o batedor e o goleiro escolhem lados. O goleiro quer escolher o mesmo lado, e o batedor quer o lado oposto. Só que, com 100 opções, dá a impressão de que o gol é largo demais
      Agora acho que, se as escolhas restantes não ficarem presas ao padrão de busca binária, o equilíbrio mudará completamente e o resultado do jogador melhorará. Só que isso cria escolhas estratégicas para cada intervalo, tornando o cálculo muito mais pesado. E não é bom eu ter evitado trabalhar por 2 horas fazendo isso. Ainda assim, fico curioso para saber o que acontece se removermos a restrição da busca binária
  • Recentemente fiz uma entrevista para uma posição sênior na área de pagamentos, um domínio complexo, e trabalho nessa área há mais de 10 anos
    Conheço pagamentos a fundo não só nos EUA, mas também no Reino Unido e na maioria das jurisdições da UE, então a entrevista correu sem falhas. Como era uma posição sênior, influência, comunicação suave e gestão de conflitos eram mais importantes do que expertise no assunto, e também me saí bem nessa parte. Eles colocaram de propósito um gerente sênior desagradável que me interrompia sem parar, e o feedback posterior foi que aquilo tinha sido uma aula de mestre em lidar com conflitos
    A rodada final foi com uma pessoa da área de negócios que se considerava, na prática, especialista no domínio, e ele ficou fazendo perguntas de trivia sobre pagamentos. Parecia que o plano era percorrer o máximo possível de curiosidades até encontrar um motivo para me rejeitar
    A última pergunta foi se eu tinha experiência real com pagamentos em tempo real, e eu tinha experiência em vários países. O FedNow dos EUA foi introduzido muito recentemente, então, nesse caso, eu havia lido as especificações e avaliado alguns fornecedores para decidir se construiríamos ou compraríamos. Ele usou isso como base para dar uma recomendação negativa, dizendo que eu não tinha experiência com pagamentos em tempo real
    Sinceramente, não quero trabalhar em um ambiente desses. Era um grande banco americano, e o maior problema não era inovação de produto nem foco no cliente, mas falhas operacionais. Independentemente da minha expertise em pagamentos, é uma área que eu já resgatei em várias grandes empresas, e também deixei isso bem claro. Ainda assim, com sorte, não é preciso sofrer para descobrir que um lugar desses é desagradável

    • Se, durante a entrevista, eles colocaram de propósito um gerente sênior para interromper sem parar, isso é um sinal de alerta
      Parece não só que a empresa tem uma cultura tóxica, mas também que ela aceita essa cultura. Lugares assim atraem pessoas com tendência a gostar de conflito e, quando há gente suficiente desse tipo, elas moldam a cultura
      Não se fala muito disso, mas conflito é uma falha de liderança. Muitas vezes, basta um líder muito sênior estalar os dedos e dizer “vocês dois, façam isso acontecer” para o conflito se resolver. Mas ou a liderança está distante demais da linha de frente para alinhar as equipes, ou ela defende de forma estrutural conflitos internos em nome da competição. De qualquer modo, um lugar assim pode ser um inferno para trabalhar
    • Essa pessoa que se dizia especialista no domínio certamente parece péssima, mas antigamente eu usava uma técnica de entrevista em que fazia perguntas cada vez mais específicas e de nível mais baixo sobre a área de especialidade do candidato
      A ideia era chegar, no fim, a um ponto em que o candidato provavelmente não soubesse responder de improviso. Não era para ser hostil nem grosseiro; eu queria ver se a pessoa conseguia dizer “não sei”. Não saber é uma parte cotidiana do trabalho técnico, mas, se alguém não consegue dizer isso com naturalidade, pode virar um grande problema
      No geral, os candidatos mais competentes eram os que se sentiam mais à vontade para responder “não sei”. Reagir na defensiva eu sempre via como um sinal de alerta
    • Em um ambiente desses, há uma chance muito maior de você ser mais respeitado como consultor ou conselheiro pago, dando conselhos genéricos e medianos, do que como funcionário oferecendo expertise de alta qualidade
      Executivos tóxicos gostam mais de consultores e conselheiros externos pagos em excesso do que de funcionários internos que ganham muito menos
    • Passei por algo muito parecido na mesma área
      É extremamente frustrante estar totalmente preparado e claramente qualificado, mas sentir que o processo não é uma avaliação real de habilidades e experiência, e sim um quiz de trivia. Como outros disseram, esse tipo de comportamento é um sinal claro de cultura tóxica
      O mais absurdo é que, em princípio, deveria ser exatamente o contrário. Se você quer ampliar uma equipe ou substituir alguém, deveria tentar encontrar uma pessoa melhor do que qualquer uma que já esteja lá
      Se ficam implicando com detalhes insignificantes ou cavando minúcias irrelevantes para achar um motivo de rejeição, é um enorme sinal de alerta. Significa que não há interesse em inovação nem em resolver problemas reais. O mesmo vale para problemas como as intermináveis falhas operacionais que nós já resolvemos em outras empresas
      Numa situação dessas, o melhor é dizer que sente muito por ter desperdiçado o tempo deles e ir embora. Mas entendo que, se aquela vaga existe na sua região, dá vontade de aguentar a besteira. Ainda assim, às vezes desviar dessa bala acaba sendo uma bênção disfarçada. Pode ser assim mesmo se, como eu na época, você estiver desempregado e ficando sem dinheiro
    • Steve Martin já encenou a mesma situação em Pink Panther: https://www.youtube.com/watch?v=mBwn7ycR7_Y
      É como investigar os antepassados até a resposta virar “fazendeiro”
  • “Devo aceitar esse jogo?”
    Claro que sim. Eu gosto de jogos, e o objetivo de um jogo é ser divertido. Se forem os primeiros 20 dólares ou algo assim, dá para encarar como o custo de um jogo divertido por 10 minutos
    Depois disso, você pode dizer “uma vez perdi 20 dólares fazendo busca binária com Steve Ballmer”, e essa é uma frase boa para usar num jantar, então para mim vale mais de 20 dólares
    Talvez isso também explique por que a Microsoft perdeu influência na era Ballmer. Olhava tanto só para o lado técnico que enxergava muito pouco o lado humano

    • Comentário subestimado. O objetivo dele era observar a forma de abordar o problema, independentemente da resposta correta em si, e isso é um critério bem diferente de acertar a resposta
    • Não sei por que alguém escreveria um comentário desses. É difícil acreditar que seja realmente jovem a ponto de não entender o implícito “ou seja, o retorno esperado é maior que 0?”
      Se respondesse assim numa entrevista, eu jamais contrataria. Na verdade, já entrevistei uma vez um candidato desse tipo. Quando eu perguntava “como você faria isso?”, ele respondia “isso não deveria ser feito; acho que deveríamos fazer outra coisa”. Ele não foi contratado
  • Ao longo de vários anos, fui percebendo aos poucos que a busca binária é uma ferramenta incrível de resolução de problemas, especialmente em sistemas grandes e complexos demais para serem depurados com facilidade.
    Recentemente, um colega teve um problema com uma ferramenta de renderização do Figma para a qual não havia código-fonte. Exportar um determinado design demorava demais, e ele passou dias mudando coisas aleatoriamente, sem resultado. Cada tentativa levava horas e, às vezes, o navegador até travava.
    A solução que sugeri foi remover metade dos elementos e ver qual efeito isso teria no tempo de exportação. Depois, repetir com o grupo que ainda falhava. Em poucas horas, encontramos o elemento que estava causando, na prática, um loop infinito.

    • Em uma aula de redes, usávamos busca binária para descobrir onde o problema ocorria, mas com uma pequena variação.
      A cada passo para longe do dispositivo final, por exemplo uma workstation, subíamos dois níveis na rede. Assim era fácil ampliar o escopo e, ao mesmo tempo, estreitar muito rapidamente o “até aqui está normal, daqui em diante quebrou”.
    • É surpreendente que as pessoas, em geral, não pensem nesse método mais cedo. Parece algo que alguém faria até intuitivamente.
    • Lembro de uma história em uma lista de e-mails privada, com cerca de 1000 pessoas, em que alguém estava vazando publicamente todas as mensagens.
      O administrador usou busca binária para encontrar rapidamente o assinante responsável, alterando seletivamente o conteúdo ao inserir espaços extras em algum ponto das mensagens.
    • Em elétrica é a mesma coisa. Mede-se a continuidade no ponto médio de um fio para verificar se a ruptura está naquela metade e então se repete o processo.
    • No começo da adolescência, na época do DHTML, eu depurava assim scripts JavaScript bem bagunçados, por exemplo menus em vários níveis.
      Removia uma parte do código, via se ainda quebrava, depois removia mais, e assim por diante.
  • Existe algum nome para o erro de atribuir o sucesso na vida à própria inteligência e, por isso, assumir que se é mais inteligente que todos e está certo sobre tudo?
    Seria algo como o oposto da síndrome do impostor.

    • O erro fundamental de atribuição é o viés pelo qual as pessoas atribuem o próprio sucesso a capacidades internas e o sucesso dos outros a circunstâncias externas. Para fracassos, funciona ao contrário.
      A segunda parte, “sou superior e sei tudo”, pode ser chamada simplesmente de velha e conhecida má índole.
    • Erro fundamental de atribuição https://en.wikipedia.org/wiki/Fundamental_attribution_error
    • Viés narrativo chega bem perto: https://en.wikipedia.org/wiki/Narrative_bias
    • Uma resposta mais incomum seria a tentação do Luciferianism.
      https://en.wikipedia.org/w/index.php?title=Luciferianism&old...
      É a tentação de acreditar que, por ser inteligente, você deve se tornar o guardião do mundo. A tentação de criar um mundo baseado no seu aprendizado e na verdade última, acreditando que encontra essas verdades com mais facilidade e rapidez do que as pessoas comuns. Isso concede uma licença à moralidade e faz com que os fins justifiquem os meios. Algo como acreditar que o mal que você faz agora será compensado depois com o dobro de bem.
      Há também o erro fundamental de atribuição e o efeito Dunning-Kruger. No aspecto comportamental, a superioridade ilusória se combina com licenciamento moral, além do efeito de desinibição pelo qual pessoas muito bem-sucedidas passam a assumir riscos maiores. Esses riscos incluem também impactos negativos sobre outras pessoas.
      Parece que todos esses efeitos se combinam em algum grau. Não necessariamente a inteligência, mas pelo menos o poder percebido pelo indivíduo parece ser o problema. Por exemplo, alguém que acredita ser naturalmente melhor em X sente mais poder e tem menos inibição para expressar superioridade ou tentar dominar os outros.
      Todos já vimos alguém agarrado a glórias passadas, incapaz de entender que não está mais no auge, tentando exercer um poder que já não possui. Para mim, isso é o verdadeiro oposto da síndrome do impostor: um estado em que a percepção de si mesmo e da dinâmica social não acompanha as mudanças do tempo.
    • Síndrome do protagonista
      Transtorno de personalidade narcisista
      Antissocialidade
  • Eu tive um colega que, antigamente, tinha uma pergunta de entrevista favorita. Era uma pergunta relacionada a estruturas de dados de grafo, e os candidatos frequentemente eram reprovados quando respondiam.
    Curiosamente, com o passar do tempo, todos os candidatos que responderam àquela pergunta foram reprovados. Então nos reunimos para ver que pergunta ele estava fazendo e, ao tentarmos resolvê-la juntos, percebemos que a solução própria dele estava errada.
    No fim, descobrimos que ele vinha reprovando pessoas com essa única pergunta durante toda a carreira.
    Foi uma experiência de humildade para todos nós e serviu de lição para conferir tudo de novo antes de fazer uma pergunta. A maioria dos candidatos entrevistados é perfeitamente contratável. Às vezes, quem está errado é você.

    • “Todos os candidatos que responderam àquela pergunta foram reprovados” também parece uma estratégia de entrevista ruim.
      Errou, reprova na hora? Havia tantos candidatos perfeitos assim a ponto de filtrar quase todo mundo?
  • Se eu fosse o entrevistado, minha primeira pergunta seria: “Você vai jogar de forma justa, e como posso verificar isso?”

    • “Como engenheiro de software, procuro primeiro entender o contexto importante antes de partir para build ou código. Primeiro, gostaria de perguntar se você vai escolher de forma aleatória e justa, ou de forma adversarial.”
      “Segundo, quando há dinheiro significativo em jogo, eu valido as entradas. Não quero dizer que eu não confie em você pessoalmente; vou encarar como falta de confiança na situação em si. Como poderíamos verificar isso, ou você prefere que eu siga assumindo que já foi verificado?”
      São boas perguntas, mas como você as faz também importa. Engenharia de software não é só engenharia pura; comunicação é muito importante.
    • Acho que bastaria escrever o número em um papel e pedir para revelá-lo no fim da entrevista.
  • Como na maioria das perguntas de entrevista, eu esperaria que esta avaliasse como a pessoa desenvolve o raciocínio e mostra o processo de solução.
    Se o entrevistador fez essa pergunta e você encontrou o erro, isso provavelmente ajudaria na contratação, e não o contrário.

  • Há outro ponto interessante aqui. Quando ficou claro que Chang não estava abordando essa pergunta explicitamente por busca binária e valor esperado, Ballmer se esforçou bastante para sair da discussão dessa pergunta específica e mudar diplomaticamente de direção.
    Não surpreende. Ela é uma jornalista profissional. O que surpreende é que Ballmer gostasse tanto dessa pergunta, como muitos entrevistadores técnicos, que não conseguiu deixar de trazê-la à tona, embora ela tivesse pouca relação com a pergunta de Chang.

  • Estou realmente curioso sobre a solução de equilíbrio de Nash
    Como mencionado em algum comentário, acho que o lado que tenta adivinhar retornaria números aleatórios próximos da busca binária. Mas fico curioso se o lado que escolhe usaria uma distribuição inicial uniforme ou uma distribuição não uniforme. Alguém no HN certamente deve saber ou conseguir explicar

    • Tentei aqui uma análise para jogos com 3, 4 e 5 números: https://quuxplusone.github.io/blog/2024/09/04/the-game-is-fl...
      Naturalmente, há uma grande lacuna entre o jogo com 5 números e o jogo com 100 números. À medida que o número de opções aumenta, a estratégia mista ótima pode se estabilizar ou, pelo que sei, pode ficar cada vez mais estranha. Se alguém explorar adequadamente jogos com 6, 7 etc. números, eu adoraria saber
    • Não entendo por que Ballmer escolher um número aleatoriamente e o candidato fazer busca binária não é um equilíbrio de Nash
      Nas outras estratégias, o candidato tem uma estratégia de adivinhar o “número de pegadinha”, e Ballmer tem uma estratégia de “não escolher o número de pegadinha”
      O candidato não consegue obrigar Ballmer a fazer pegadinha