私の問題に適した最良の例は宝くじですが、宝くじとは少し異なりますが、アイデアは似ています。私のプログラムは、以前に生成された数値を格納するデータベースからデータをフェッチしています。番号は次の形式です。
...
5, 10, 11
...
3つの乱数。これで、テーブルには、以前に生成された最大10,000の数値が保持され、テーブルの形式は次のようになります。
UniqueID (autoincrement), Number1, Number2, Number3, DateOfGeneration
どのようなアルゴリズムが必要か、あるいはアルゴリズムを思いつくのに役立つ本を提案するかもしれません。私はあなたにコードを書くように頼んでいません。私が自分でそれを読んで理解できるように、チュートリアルや本やサイトを求めているだけです。
来る可能性が最も高い次の組み合わせを計算する必要があります。つまり、以前に生成された10,000の組み合わせのうち、 3、5、19の組み合わせが350倍になり、次にこの組み合わせが現れる確率は次のようになります。
350/10000 = 0.035 or 3.5%
この0.035を次の構造を持つ配列に格納します。
$arrayOfCombinations[combinationisthekey] = probability
例:
$arrayOfCombinations['3,5,19'] = 0.035
次に、この配列からランダムに選択されるある種のアルゴリズムを実行します。そのため、組み合わせ3、5、19は、0.035の確率で選択されます。
私は、すべての組み合わせとその確率を保持する配列のステップに到達する方法を知っています。確率で配列からランダムに選択するアルゴリズムが必要です。
より正確にするために、その番号が生成された日付を考慮する必要がありますか?確率を増減する必要がありますか?私が必要としているが、どこを探すべきかわからないこれらの種類の要因。
どんな提案やリンク/チュートリアルもありがたいです、そしてどうもありがとうございました。
繰り返しますが、私はあなたにあなたの時間を費やして私のためにコードを書くように頼んでいません。自分で書くので、なんらかのチュートリアルが必要です。
編集:(要点についてはこれを読んでください)
私が探している主なことは、組み合わせの確率を増減させる可能性のある、どのような要因を覚えておく必要があるかということです。生成された数値の日付、3つの数値が偶数か奇数かなど...そして、これらすべての要素を取得したときに、これらのデータをプラグインして正確な結果を取得するには、どのアルゴリズムが最適であるか(ある場合)