完全な質問は次のとおりです。
サイズの配列からm個の整数のセットをランダムに生成するメソッドを記述します
n。各要素は、選択される確率が等しい必要があります`
この質問は「コーディングインタビューのクラック」から選択され、解決策は次のとおりです。
要素を配列の先頭にある要素と交換してから、配列に含まれるのは要素
j以上であることを「覚えておく」ことができます。つまり、を選択subset[0]すると、配列の最初の要素にarray[k]置き換えられます。array[k]を選択するsubset[1]と、「デッド」と見なされ、1と配列の間array[0]のランダムな要素が選択されます。次に、subset [1]を、に設定し、 array[1]に等しく設定します。要素0と1は「デッド」になりました。から、などから選択されるようになりました。ysize()array[y]array[y]Subset[2]array[2]array[array size()]
私の質問は、乱数を選択する配列を縮小する場合、各番号が選択される確率です1/remaining_num_elements。すべての要素でどのように平等に保たれますか?