ここから本文です

a=rand()%100;というのがあったんですが、この%100はどういう意味ですか?

rod********さん

2011/11/2122:27:46

a=rand()%100;というのがあったんですが、この%100はどういう意味ですか?

閲覧数:
1,805
回答数:
3
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

jos********さん

編集あり2011/11/2316:17:45

a % b は、「b で a を割り算したときの余り」 っていう意味だぉ。
だからもちろん、答えは、 b より小さくなるの。

0≦ a % b < b

数値を一定の範囲にトリミングするのに使えるの。


─────
蛇足だけど、乱数列で % を使うのは、あまり良くないの。

例えば、rand () が 0~120 の範囲の乱数列を発生させる関数だったとして、rand () % 100 を求めたら、

.......... rand () が 0~99 の場合は、そのままの値になって、
.......... rand () が 100~120 の場合、100で割った余りの、0~20 になるの。

だから、0~20 の部分が重複することになるの。答えが、0~20 になる確率が、21~99 になる確率の 2倍になっちゃって、乱数列としては、良くないでしょぉ?

乱数列では、% を使わずに、rand () が 100 以上の数になったら捨ててしまって、
100未満の数が出るまで rand () を繰り返し呼び出すのがいいかもね。


joseph_joey_tribbiani

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

max********さん

編集あり2011/11/2623:14:06

0から100までの乱数が発生されます。

乱数の前に基本的な演算子を覚えたほうがいいかと
まぁこのように覚えておいたほうがいい
●=rand() % (乱数の最大値)+(乱数の最小値)

kao********さん

2011/11/2122:30:55

%は「あまり」を表す剰余の演算子です。
この場合aには、発生した乱数を100で割った余りが代入されます。
要するに100未満の範囲で乱数を発生させたいわけですね。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる