1

10人の生成された回答のグループ間で一致してはならない10個の一意の番号を生成するためのアプローチはどうあるべきですか?

4

2 に答える 2

3

これには素晴らしい解決策があります。1 から 10 の数字を 10 人の異なる人に無作為に与える必要があると仮定しています (ただし、10 (またはそれ以上) の異なる連続していない数字がある場合でも、原則は機能します)。

  • 数字を配列に並べます。
  • シャッフル アルゴリズムを使用して、配列内の要素をシャッフルします。
  • 配列から最初の 10 個の値を読み取り、それらを 10 人のそれぞれに割り当てます。
于 2012-04-13T15:06:38.937 に答える
2

OS 機能を使用して GUID (グローバル一意識別子) を生成できます。

GUID は、次のような 32 桁の 16 進数です( GUID ウィキペディア{21EC2020-3AEA-1069-A2DD-08002B30309D}の記事から恥知らずに盗用されました)。つまり、128ビットの数値になります。現在、邪魔な文字がすべて含まれていますが、余分な文字を削除して16進数から変換し、それを単純な数値として扱うことを妨げるものは何もありません.

実際的な理由から、C99 などの一部の言語では、128 ビットの数値は少し扱いに​​くいことに注意してください。ただし、コンパイラ拡張機能 (GCC には__uint128_t) を使用したり、別の方法で処理したりできます。

于 2012-04-13T20:31:47.537 に答える