私はC言語を初めて使っています。私はそれについての本を読んでいます。私はちょうどrand()
機能に出くわしました。この本では、rand()
を使用すると0から32767までの乱数が返されると記載されています。%
(モジュラス演算子)を使用して乱数を絞り込むこともできます。ここ
は一例であり、以下の式は、0から33767 % 5
の任意の数に等しくなるように、私は5の残りの部分を取得できませんよ可変dice
C rand()ダイスの問題
dice = (rand() % 5) + 1;
に1から6までの乱数を置きます0〜4、ただし決してありません。
代わりに上記のステートメントの% 6
にする必要はありませんか?
例えば、私はランダムに0と32767の間の数値を選択した場合、のは、それから、75を言わせては:
75 % 5 == 0
76 % 5 == 1
77 % 5 == 2
78 % 5 == 3
79 % 5 == 4
80 % 5 == 0
Etc.
のでかかわらず、0と32767の間の乱数の、残りはそう、5になることはありませんサイコロの6桁の数値を得ることはできません(上記のステートメントに従って)。
私が何を意味するのか分かりませんが、あなたの助けが大いに評価されるかどうかわかりません。
質問は何ですか?あなたはそれに自分で答えました。 – Cristy
'rand()'は0から32767までの数値を返しません。最初にマニュアルを読む –
C%は実際にはモジュロ演算子ではない剰余です。 – 2501