有限集合からランダムな値を取得することに関する この質問は、私に考えさせました...
Y値のセットからX個の一意の値を取得したいという人はかなり一般的です。たとえば、カードのデッキから手を配りたい場合があります。私は5枚のカードが欲しいです、そして私はそれらがすべてユニークであることを望みます。
今、私はこれを素朴に行うことができます。ランダムなカードを5回選び、複製を取得するたびに、5枚のカードを取得するまで再試行します。ただし、これは、大きなセットからの多数の値の場合はそれほど大きくありません。たとえば、1,000,000のセットから999,999の値が必要な場合、このメソッドは非常に悪くなります。
問題は、どれほど悪いのかということです。O()値を説明してくれる人を探しています。x番目の数を取得するにはy回の試行が必要です...しかし、いくつですか?任意の値についてこれを理解する方法を知っていますが、シリーズ全体でこれを一般化し、O()値を取得する簡単な方法はありますか?
(問題は、「これをどのように改善できるか」ではありません。これは、修正が比較的簡単であり、他の場所でも何度も取り上げられていると確信しているためです。)