Jogos :: Puzzles :: Sendmoremoney

resolve enviar + mais = problemas de dinheiro
Baixe Agora

Jogos :: Puzzles :: Sendmoremoney Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Michael Schilli
  • Site do editor:
  • http://search.cpan.org/~mschilli/

Jogos :: Puzzles :: Sendmoremoney Tag


Jogos :: Puzzles :: Sendmoremoney Descrição

Resolver enviar + mais = problemas de dinheiro Jogos :: Puzzles :: sendmoremoney é um módulo perl que resolve quebra-cabeças numéricos como seguir: Assuma que cada uma das letras da seguinte expressão representa um dígito numérico distinto: Enviar + mais = MoneyGames :: Puzzles :: Sendmoremoney vai quebrar este quebra-cabeça por brute - forçando todo o espaço de pesquisa. Na sua forma mais simples, uma chamada para o seu construtor especifica o quebra-cabeças e uma gama de valores de dígitos para cada letra no quebra-cabeça: # ... Meu $ Solver = Games :: Quebra-cabeças :: Sendmoremoney-> Novo (Valores => 0..9], quebra-cabeça => "Enviar + mais = dinheiro",}; chamando o solver, então passará por todas as permutações possíveis e devolverá uma referência a uma matriz de resultados: Meu resultado $ Result = $ SOLVER-> SOLVE () ; Um único resultado (portanto, um elemento do array que $ result é apontado) consiste em uma referência a um hash contendo o mapeamento entre as letras do quebra-cabeça e seus valores: $ var1 = {'s' => 9, 'O' = '=> 0,' m '=> 1,' d '=> 7,' n '=> 6,' r '=> 8,' e '=> 5,' y '=> 2}; muitas vezes , no entanto, passar por todo o espaço de pesquisa pode ser extremamente demorado. Em vez disso, é desejável relatar um resultado assim que encontrar: my $ solver = games :: quebra-cabeças :: sendmoremoney-> Novo (Valores => 0..9], quebra-cabeça => "enviar + mais = dinheiro", repórter => sub {impressão de dumper ($ _ )},); o parâmetro repórter especifica um ref Para uma função, que será chamado por jogos :: Puzzles :: Sendmoremoney em todos os resultados que corresponda à expressão do quebra-cabeça. A função de repórter receberá uma referência a um hash resultante como seu primeiro parâmetro. Além disso, o repórter pode definir a variável $ games :: Puzzles :: sendmoremoney :: stop_solver a um valor verdadeiro para indicar que o solver deve terminar imediatamente. (No entanto, isso não funciona para o permutador padrão ainda). Setemas, nem todas as permutações possíveis são válidas. Por exemplo, a forma original do envio + mais = quebra-cabeça de dinheiro requer que nenhum dos números no quebra-cabeça tenha um zero líder. Esses tipos de restrições podem ser especificados usando uma função validador, que será chamada antes de avaliar uma combinação: my $ solver = games :: quebra-cabeças :: sendmoremoney-> Novo (valores => , quebra-cabeça => "Enviar + More = Money", Reporter => Sub {Imprimir Dumper ($ _ )}, Validator => Sub {Retornar 0 se $ _ -> {s} == 0; return 0 se $ _ -> {m} == 0; return 1;},); se o validador retornar 0, jogos :: puzzles :: sendmoremoney nem mesmo avaliar a permutação, mas depois passa para o próximo imediatamente. Jogos :: Puzzles :: Sendmoremoney também suporta permutadores personalizados, que precisam devolver matrizes de números que serão mapeados para as letras do quebra-cabeça um pouco imprevisivelmente: # ... ou ... Meu $ Solver = Games :: Puzzles :: Sendmoremoney > novo (permutador => get_next_permutation, quebra-cabeça => "enviar + mais = dinheiro",}; em algum momento, jogos :: quebra-cabeças :: sendmoremoney até apoiará um espaço de pesquisa estreitamente definido (no entanto, isso não é implementado ): # ... ou ... meu $ solver = games :: quebra-cabeças :: sendmoremo ney-> NOVO (Search_space => {s => , e => , n => , d => , # ... Puzzle => "Enviar + mais = dinheiro",}; Sinopse Use Games :: Puzzles :: Sendmoremoney; Use dados :: dumper; Meus $ Solver = Games :: Quebra-cabeças :: Sendmoremoney-> Novo (Valores => , Puzzle => "Enviar + More = Dinheiro", Reporter => Sub {Imprimir dumper ($ _ ) }, validador => sub {return 0 se $ _ -> {s} == 0; return 0 se $ _ -> {m} == 0; retorno 1;},); $ SOLVER-> SOLVE (); Requisitos: · Perl.


Jogos :: Puzzles :: Sendmoremoney Software Relacionado