Sha256: 3a171cce0e6d9d72d367b86783c865cfe8f369610ab29579a55bc877cab03679
Contents?: true
Size: 1.73 KB
Versions: 3
Compression:
Stored size: 1.73 KB
Contents
#!/usr/bin/env ruby # coding: utf-8 require 'numeron' simulator = Numeron::Simulator.new # 結果を標準出力 simulator.verbose = true # 適当に検証用の答えの一覧を作る()内の数値は作成する答えの数 answers = Numeron::Simulator.build_sample_answers(100) # 最初の攻撃文字列 first_attack = '123' result = simulator.run(answers, first_attack) do |calculator| ## ここにシミュレーションしたいものを記述する(引数はNumeron::Calculator) ## 下は計算結果において、正解の可能性のリストから1つランダムで選択するパターン ## ちなみに10000件回してみたところ上記の可能性があるリストから1つ抜き出す方法の平均手数は 5.213 であった。 # calculator.possibilities.sample ## Analyzerを使うパターン ## max: 8, min: 2, median: 6, average: 5.74 (n=100) # if calculator.possibilities.size > 21 # analyzer = Numeron::Analyzer.new(calculator) # recommend = analyzer.run_worstcase_mode[:recommend] # if recommend.size > 0 # recommend.sample # else # calculator.possibilities.sample # end # else # calculator.possibilities.sample # end ## max: 8, min: 3, median: 6, average: 5.9 analyzer = Numeron::Analyzer.new(calculator) if calculator.possibilities.size > 21 recommend = analyzer.run_worstcase_mode[:recommend] if recommend.size > 0 recommend.sample else calculator.possibilities.sample end else recommend = analyzer.run_possibilities[:recommend] if recommend.size > 0 recommend.sample else calculator.possibilities.sample end end end Numeron::Simulator.calc_statistics(result).each do |k, v| puts k.to_s + ': ' + v.to_s end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
numeron-1.3.0 | examples/simulator_example.rb |
numeron-1.2.0 | examples/simulator_example.rb |
numeron-1.1.0 | examples/simulator_example.rb |