Giochi :: Puzzle :: sendmoremoney

Risolvi Invia + altro = problemi di denaro
Scarica ora

Giochi :: Puzzle :: sendmoremoney Classifica e riepilogo

Annuncio pubblicitario

  • Rating:
  • Licenza:
  • Perl Artistic License
  • Prezzo:
  • FREE
  • Nome editore:
  • Michael Schilli
  • Sito web dell'editore:
  • http://search.cpan.org/~mschilli/

Giochi :: Puzzle :: sendmoremoney Tag


Giochi :: Puzzle :: sendmoremoney Descrizione

Risolvi Invia + altro = problemi di denaro Giochi :: Puzzle :: SendMoremoney è un modulo Perl che risolve puzzle numerici piace seguire: Supponiamo che ciascuna delle lettere nella seguente espressione rappresenti una cifra numerica distinta: invia + altro = MoneyGames :: Puzzle :: SendMoremoney creerà questo puzzle da Brute-Forzando l'intero spazio di ricerca. Nella sua forma più semplice, una chiamata al suo costruttore specifica il puzzle e una gamma di valori di cifre per ogni lettera nel puzzle: # o ... My $ solver = giochi :: Puzzle :: sendmoremoney-> Nuovo (valori => , Puzzle => "Invia + altro = soldi",}; chiamare il risolutore eseguirà quindi tutte le possibili permutazioni e restituirà un riferimento a una matrice di risultati: My $ Risultato = $ SOLVER-> SOLVE () ; Un singolo risultato (quindi, un elemento dell'array che $ il risultato sta puntando) consiste in un riferimento a un hash contenente la mappatura tra le lettere di puzzle e i loro valori: $ VAR1 = {'S' => 9, 'o '=> 0,' m '=> 1,' d '=> 7,' n '=> 6,' r '=> 8,' e '=> 5,' y '=> 2}; spesso volte , tuttavia, passare attraverso l'intero spazio di ricerca può essere estremamente consumato in termini di tempo. Invece, è auspicabile segnalare un risultato non appena è stato trovato: My $ Solver = Giochi :: Puzzle :: SendMoremoney-> Nuovo (Valori => , Puzzle => "Invia + more = money", reporter => sub {stampa Dumper ($ _ )},); il parametro del reporter Specifica un ref erence a una funzione, che sarà chiamata dai giochi :: puzzle :: sendmoremoney su ogni risultato che corrisponde all'espressione di puzzle. La funzione del reporter otterrà un riferimento a un risultato hash come primo parametro. Inoltre, il reporter può impostare le partite a $ Variable $ :: Puzzle :: SendMoremoney :: stop_solver a un valore reale per indicare che il risolutore dovrebbe terminare immediatamente. (Tuttavia, questo non funziona ancora per il permutatore predefinito). A volte, non tutte le possibili permutazioni sono valide. Ad esempio, la forma originale del PAND + altro = il puzzle del denaro richiede che nessuno dei numeri nel puzzle abbia uno zero iniziale. Questi tipi di vincoli possono essere specificati utilizzando una funzione validatore, che verrà chiamato prima di valutare una combinazione: My $ solver = giochi :: puzzle :: sendmoremoney-> nuovo (valori => , puzzle => "Invia + more = money", reporter => sub {stampa dumper ($ _ )}, validator => sub {return 0 se $ _ -> {s} == 0; ritorno 0 se $ _ -> {m} == 0; ritorno 1;},); se il validatore restituisce 0, giochi :: puzzle :: Sendmoremoney non valuterà nemmeno la permutazione ma invece passare immediatamente a quella successiva. Giochi :: Puzzle :: Sendmoremoney supporta anche i permutori personalizzati, che devono restituire gli array di numeri che saranno mappati alle lettere puzzle in qualche modo imprevedibili: # ... o ... My $ solver = giochi :: puzzle :: sendmoremoney- > Nuovo (Permutator => get_next_permutation, puzzle => "Invia + more = soldi",}; ad alcuni punti, giochi :: Puzzle :: SendMoremoney supporterà persino uno spazio di ricerca strettamente definito (tuttavia, attualmente, questo non è implementato ): # ... o ... My $ solver = giochi :: puzzle :: sendmoremo ney-> nuovo (search_space => {s => , e => , n => , d => , # ... Puzzle => "Invia + altro = soldi",}; Sinossi Usa giochi Giochi :: Puzzle :: sendmoremoney; Utilizzare i dati :: Dumper; My $ SOLVER = Giochi :: Puzzle :: SendMoremoney-> Nuovo (valori => , puzzle => "Invia + altro = soldi", reporter => sub {stampa Dumper ($ _ ) }, validator => sub {return 0 se $ _ -> {s} == 0; ritorno 0 se $ _ -> {m} == 0; return 1;},); $ solver-> risolvi (); Requisiti: · Perl.


Giochi :: Puzzle :: sendmoremoney Software correlato