それは考えた。0.5 が妥当かどうかわからない。引き続き観察を続ける。成功した時に debug ログに書き込むのだろうか。
0.5 ではなく 1 を使え。max=100、target=10 とすると、100 ハッシュのうち 10 がターゲット以下になるので、成功率は 10%であって 5%ではない。
現時点で target/max ≈ 1.5x10^-11(target≈0x000000000f、つまり 36個のゼロなので、基本的に 2^36=690 億面のサイコロを振って 1 が出るまで待つようなものだ)。1秒あたり 100 万ハッシュ x 86400 = 1日あたり 864 億ハッシュなので、1日に 1回よりやや多い成功が期待できる。
これが Bitcoin 生成の平均時間であり、約 1 週間以上の期間にわたってのみ有効であることを理解するのは非常に重要だ。成功イベントは完全にランダムなので(そうでなければハッシュ関数はおそらく安全ではなく、いずれ誰かが解読し、したがって bitcoin も!)、ある成功から次の成功までの間隔は n=0 のポアソン分布、つまり指数分布に従う(Wikipedia を参照)。したがって、1日1回の成功という平均レートでは、おおよそ 10%の確率で 2.5日以上、1%の確率で 4.5日、0.1%の確率で 7日待つことになる、といった具合だ。