繰り返しのない乱数

問題の定式化

与えられた値の範囲で繰り返しのない一連の整数乱数を作成する必要があると仮定しましょう。 外出先での例:

  • 製品またはユーザーの一意のランダム コードを生成する
  • 人をタスクに割り当てる (それぞれリストからランダムに)
  • 検索クエリ内の単語の順列 (hello seo-shnikam)
  • 宝くじなどをする

方法 1. シンプル

まず、簡単なオプションを考えてみましょう: 10 から 1 までの 10 個の整数のランダムなセットを取得する必要があります。Excel に組み込まれている関数を使用する ケースの間 (エッジ間のエッジ) 一意性は保証されません。 シート セルに入力して 10 セル下にコピーすると、繰り返しが簡単に発生します。

繰り返しのない乱数

したがって、私たちは反対に行きます。

すべてのバージョンの Excel に機能があります RANK (鳴る)、ランキング、つまり、セット内の数値の最上位を決定することを目的としています。 リスト内の最大数はランク = 1、上から 2 番目はランク = XNUMX、というようになります。

セル A2 に関数を入力しましょう スルキス (ランド) 引数なしで数式を 10 セル下にコピーします。 この関数は、10 から 0 までの 1 個の乱数の小数のセットを生成します。

繰り返しのない乱数

次のコラムでは、関数を紹介します RANK受信した各乱数のランキングでの位置を決定するには:

繰り返しのない乱数

必要なものを列 B に取得します。1 から 10 までの任意の数の繰り返しのないランダムな整数です。

純粋に理論的には、次のような状況が発生する可能性があります。 スルキス 列 A に 15 つの同一の乱数が表示され、それらのランクが一致し、列 B で繰り返しが得られます。ただし、精度が小数点以下 XNUMX 桁であることを考えると、このようなシナリオの確率は非常に小さくなります。

方法 2. 複雑

この方法は少し複雑ですが、使用する配列数式は 9 つだけです。 シート上に 1 から 50 までの範囲の XNUMX つの繰り返しのない乱数のリストを作成する必要があるとします。

セルA2に次の式を入力し、最後をクリックします Ctrl + Shift + Enter (配列数式として入力するには!) 数式を目的のセル数までコピーします。

繰り返しのない乱数

方法 3. マクロ

もちろん、Visual Basic でのプログラミングを使用して問題を解決することもできます。 ランダム サンプリングに関する古い記事の XNUMX つで、Lotto 配列マクロ関数を既に引用しました。これは、指定された間隔から必要な数のランダムな非反復数を生成します。

  • 範囲内の一意の値の数を数える方法
  • リストから要素をランダムに選択

コメントを残す