ゲーム::パズル:: SendMoreMoney

送信+その他=お金の問題
今すぐダウンロード

ゲーム::パズル:: SendMoreMoney ランキングとまとめ

広告

  • Rating:
  • ライセンス:
  • Perl Artistic License
  • 価格:
  • FREE
  • 出版社名:
  • Michael Schilli
  • 出版社のWebサイト:
  • http://search.cpan.org/mschilli/

ゲーム::パズル:: SendMoreMoney タグ


ゲーム::パズル:: SendMoreMoney 説明

送信+その他=お金の問題を解決します ゲーム::パズル:: SendMoreMoneyは、次の式のような数値パズルを解決するPerlモジュールです。次の式の各文字が異なる数字を表します。検索スペース全体をブルート強制的に。最も単純な形式では、そのコンストラクタへの呼び出しはパズル内の各文字のパズルと桁値の範囲を指定します。 0..9]、パズル=> "Send + More = money"、}。ソルバーを呼び出すと、すべての可能な順列を実行し、結果の配列への参照を返します.My $ result = $ solver-> solve() ;単一の結果(したがって、$ RESULTが指しているアレイの要素)は、パズル文字とその値の間のマッピングを含むハッシュへの参照からなる:$ var1 = {'s' => 9、 ' '=> 0、' m '=> 1、' d '=> 7、' n '=> 6、' r '=> 8、' e '=> 5、' y '=> 2}。しばしばしかし、検索スペース全体を通過することは非常に時間がかかります。代わりに、結果を見つけるとすぐに結果を報告することが望ましいです。 0..9]、Puzzle => "Send + More = Money"、Reporter => sub {印刷ダンパー($ _ )}、); ReporterパラメータはREFを指定しますGames :: PuzzleSles :: SendMoreMoneyによって呼ばれる関数へのアクセスは、パズル表現と一致するあらゆる結果に。 Reporter関数は、最初のパラメータとして結果ハッシュへの参照を取得します。その上に、レポーターは変数$ Games :: Puzzles :: SendMoreMoney :: stop_solverをtrue値に設定して、ソルバーがすぐに終了するようにすることができます。 (ただし、これは既定の順列化者ではまだ動作しません).SOMETIMESは、すべての可能な順列が有効ではありません。たとえば、Send + More = Money Puzzleの元の形式では、パズル内の数字のどちらも先行ゼロを持たないことが必要です。これらの種類の制約は、組み合わせを評価する前に呼び出されるバリデータ機能を使用して指定できます.My $ Solver = Games :: Puzzle :: SendMoreMoney-> New(Values => 、パズル=> "Send + More = Money"、Reporter => sub {印刷ダンパー($ _ )}、Validator => SUB {$ _ - > {s} => {s} => {s} =>; $ 0の場合は0を返す_ - > {M} = = 0; return 1;;}、); Validatorが0を返す場合は、Games :: PuzzleSles :: SendMoreMoneyは置換を評価することさえありませんが、代わりにすぐに次のものに進みます。ゲーム::パズル:: SendMoreMoneyはまた、パズル文字にマッピングされる数字の配列をやや予測できないように返す必要があります。#...または... My $ solver =ゲーム::パズル:: SendMoreMoney- > New(Permutator => GET_NEXT_PERMUTATINATION、PUZZLE =>「SEND + MOINE = MONEY」、};ある時点で、Games :: PuzzleSles :: SendMoreMoneyは狭く定義された検索スペースをサポートします(ただし、これは実装されていません):#...または...私の$ solver =ゲーム::パズル:: SendMoremo Ney-> New(search_space => {s => 、e => 、n => 、d => 、# ...パズル=> "Send + More = money"、};概要ゲームを使う::パズル:: SendMoreMoney; DATA :: DUMPERを使用してください。 My $ Solver = Games :: Puzzle :: SendMoreMoney-> New(Values => 、Puzzle => "Send + More = Money"、Reporter => Sub {印刷ダンパー($ _ ) $ _ - > {s} => {s} => {m} => {m} => {M} => {m} => {m} => {m} => {m} => {m} => {m} => {m} => {m} => {m} => {m} => {m} => {m} => {m} => {m} =>} $ solver-> solve();要件: ・Perl


ゲーム::パズル:: SendMoreMoney 関連ソフトウェア