-2

関数を使用rand()することで、アウトプットの可能性を生み出すことができます。

Likerand()%4 + 'A'基本的に、このコードは A から D までのランダムなアルファベットを生成することを意味します。

では、私の質問は、このランダム生成に「可能性率」を入れることができるかということです。

たとえば、4つのアルファベット(AからDまで)の中でAが出る場合、24%の確率しかありません

Bは12%のレートなどで出てきます。

  • 私は Windows を使用しており、コーディング用のプログラムは Visual Studio 2012 です。 (言語は C です)
4

3 に答える 3

3

24 個の A、12 個の B、および適切な数の C と D を含む 100 文字の文字列を作成します。0 から 99 までの乱数を生成します。これを文字列へのインデックスとして使用します。これにより、加重ランダム選択が得られます。

これは単純ですが、ほぼグラフィカルな方法です。範囲に基づいて決定することもできます。

于 2013-09-16T06:44:01.457 に答える
2

アルファベット4文字(A~D)の中でAが出る確率は24%、Bが出る確率は12%など。

はい、もちろんできます。1 から 100 までの数値を選択するだけです。数値が [1, 24] の範囲にある場合、結果は A になります。数値が [25, 36] の範囲にある場合、結果は B になります。

重要なのは、ランダム関数からの複数の結果を各結果にマッピングできることです。これにより、各結果の頻度を調整できます。

于 2013-09-16T06:45:13.433 に答える
1

これは、各結果に % を割り当てることで実行できます。A が 0 から 25 まで、B が 26 から 31 までになるようにパーセントを積み上げます。次に、0..99 の範囲内で乱数を生成し、どの領域にヒットするかを確認します。視覚的には次のようになります。

<--A 25%--><-B 5%-><---C30%---><-----D40%----->
于 2013-09-16T06:44:13.940 に答える