Games :: Puzzels :: Sendmoremoney

Stuur verzend + meer = geldproblemen
Download nu

Games :: Puzzels :: Sendmoremoney Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Michael Schilli
  • Uitgever website:
  • http://search.cpan.org/~mschilli/

Games :: Puzzels :: Sendmoremoney Tags


Games :: Puzzels :: Sendmoremoney Beschrijving

Solve Send + Meer = Geldproblemen Games :: Puzzels :: SendMoremoney is een Perl-module die numerieke puzzels oplost, zoals het volgende: veronderstellen dat elk van de letters in de volgende uitdrukking een verschillend numeriek cijfer vertegenwoordigt: Send + Meer = MoneyGames :: Puzzels :: Sendmoremoney zal deze puzzel kraken door brute-forcing de volledige zoekruimte. In de eenvoudigste vorm geeft een oproep aan de constructor de puzzel en een reeks cijfers voor elke letter in de puzzel: # ook ... My $ Solver = Games :: Puzzels :: Sendmoremoney-> NIEUW (VALUEK => , Puzzle => "Send + Meer = GELD",}; het bellen van de oplosser loopt dan door alle mogelijke permutaties en retourneer een verwijzing naar een reeks resultaten: mijn $ resultaat = $ Solver-> Solve () ; Een enkel resultaat (vandaar een element van de array waaraan $ resultaat naar wijst) bestaat uit een verwijzing naar een hash die de kaarten tussen de puzzelletters en hun waarden bevat: $ var1 = {'s' => 9, ' '=> 0,' m '=> 1,' d '=> 7,' n '=> 6,' r '=> 8,' e '=> 5,' y '=> 2}; vaak tijden Maar doorgaande door de hele zoekruimte kan extreem tijdrovend zijn. In plaats daarvan is het wenselijk om een resultaat te melden zodra het is gevonden: mijn $ solver = games :: puzzels :: Sendmoremoney-> Nieuw (Waarden => 0..9], Puzzle => "Send + Meer = GELD", Reporter => Sub {Print Dumper ($ _ )},); de reporter-parameter specificeert een ref Erence aan een functie, die wordt opgeroepen door Games :: Puzzles :: Sendmoremoney op elk resultaat dat overeenkomt met de puzzeluitdrukking. De reporter-functie krijgt een verwijzing naar een resultaathash als de eerste parameter. Bovendien kan de verslaggever de variabele $ games instellen :: Puzzels :: SendMoremoney :: STOP_SOLVER naar een echte waarde om aan te geven dat de oplosser onmiddellijk moet worden beëindigd. (Dit werkt echter nog niet voor de standaardpermutator) .Sometimes, niet alle mogelijke permutaties zijn geldig. De oorspronkelijke vorm van de Send + More = Geld Puzzle vereist bijvoorbeeld dat geen van de nummers in de puzzel een leidende nul heeft. Dit soort beperkingen kunnen worden opgegeven met behulp van een validatorfunctie, die wordt gebeld voor het evalueren van een combinatie: Mijn $ Solver = Games :: Puzzels :: Sendmoremoney-> NIEUW (Waarden => , Puzzle => "Send + Meer = GELD", Reporter => Sub {Print Dumper ($ _ )}, Validator => Sub {return 0 als $ _ -> {s} == 0; Retour 0 als $ _ -> {m} == 0; terugkeer 1;},); als de validator 0, games :: puzzels :: Sendmoremoney zal niet eens de permutatie evalueren, maar in plaats daarvan onmiddellijk naar de volgende gaan. Games :: Puzzels :: Sendmoremoney ondersteunt ook aangepaste permuteerders, die nodig zijn om arrays van cijfers te retourneren die in kaart worden gebracht aan de puzzelletters enigszins onvoorspelbaar: # ... of ... My $ Solver = Games :: Puzzels :: Sendmoremoney- > NIEUW (PERMOSATOR => GET_NEXT_PUTEMUTOM, PUZZEL => "Send + Meer = GELD",}; op een gegeven moment, games :: Puzzels :: Sendmoremoney ondersteunt zelfs een nauw gedefinieerde zoekruimte (momenteel wordt dit echter niet geïmplementeerd ): # ... of ... mijn $ solver = games :: Puzzels :: Sendmoremo Ney-> Nieuw (search_space => {s => , e => , n => , d => , # ... Puzzle => "Send + Meer = GELD",}; Synopsis Gebruik Games :: Puzzels :: Sendmoremoney; Gebruik gegevens :: Dumper; Mijn $ Solver = Games :: Puzzels :: SendMoremoney-> Nieuwe (Waarden => , Puzzel => "Send + Meer = GELD", Reporter => Sub {Print Dumper ($ _ ) }, Validator => Sub {return 0 als $ _ -> {s} == 0; retour 0 als $ _ -> {m} == 0; retour 1;},); $ solver-> oplossen (); Vereisten: · Perl


Games :: Puzzels :: Sendmoremoney Gerelateerde software