1つの問題
単一リンクリストを与え、保証するために、ノードのランダムな値を返し、その選択された各ノードに対して同じ確率。
未知の長さのリストは、非常に大きくなる可能性があります。
試験方法2
ノード統計的頻度は、各ノードのために選択され、戻り値が1000で、単鎖10です。周波数が各ノードに対して選択される参照して1/10近接していません。
3 Javaベースの乱数生成java.util.Randomの
ランダム()は、新しい乱数ジェネレータを作成します。
INT nextInt(INTバウンド)、結合した、0との間で発生する整数)、INT内の各セクションについて同じ確率を生成します。
nextInt(10)は、10の数、これら10桁の各々の同じ数を生成する確率である{0、1、2、3、4、5、6、7、8、9}を生成します。
4リザーバサンプリング、貯蔵サンプリング
これは、問題のデータストリームの大きいランダムサンプルである、すなわち、すべてのデータ・メモリは、kはランダムに未知のサイズのストリームからデータを選択する方法、ロードできない場合に、各確率に対して同じデータことを保証するように選択されます。