Implemente um solucionador aritmético verbal de várias mesmas seqüências de números somados:
TWO
+ TWO
-----
FOUR
REPEAT
REPEAT
REPEAT
+ REPEAT
--------
ANDSTOP
SPEED
+ SPEED
-------
KILLS
Existem algumas restrições: cada letra deve representar dígitos diferentes e nenhuma letra pode ser zero.
Implemente o solucionador em função dos operandos; a soma e o número de repetições retornam uma lista de soluções (solução: a tupla do operando e da soma resultantes). Por exemplo:
f(['T','W','O'], ['F','O','U','R'], 2) == [(734, 1468)]
Você não precisa representar variáveis como letras e não precisa usar um hash na solução. Pesquisa de força bruta permitida.
O menor código vence.
Respostas:
Mathematica
Espaços adicionados para maior clareza. Não é muito golfe.
Precisa usar letras gregas, porque as letras de entrada são tratadas como símbolos.
Uso:
Não encontrou nenhuma solução para o SPEED + SPEED + SPEED = KILLS ... isso é um bug?
Editar
Permitindo zero, encontra as seguintes soluções para a equação SPEED + SPEED + SPEED = KILLS:
Editar
De acordo com o comentário:
fonte
Pitão
http://ideone.com/4wIQe
fonte
escala:
333289Uso:
fonte
PHP (200)
Essa função leva muito tempo para ser executada e usa muita memória, mas atende aos critérios.
Uso da amostra:
Explicação sem golfe:
Se for permitido inserir o operando e somar como strings em vez de matrizes, posso pular as operações de junção e salvar 20 caracteres para colocar o total em 180.
fonte