ページ 11

C初心者

Posted: 2009年12月28日(月) 16:00
by わかりません
X=(double)rand()/RAND_MAX; というのは、0~1の間で乱数を発生させますよね。
これを、-1以上1以下の乱数で与えたい場合はどうようにしたら良いのでしょうか?

Re:C初心者

Posted: 2009年12月28日(月) 16:27
by sizuma
0~2までの範囲で乱数を発生させて、それから1引けばいいのではないでしょうか?

Re:C初心者

Posted: 2009年12月28日(月) 20:36
by Dixq (管理人)
題名が「C初心者」、お名前が「わかりません」というのはちょっとわかりにくいのではないでしょうか・・。
トピック名は後から人が見てもわかりやすい名前に、
お名前は今後お使いになる中でふさわしい名前にしてください。

ところで、質問の内容を実現する方法は沢山あるでしょうけど、
分母(RAND_MAX)を小さくするか、生成した0~1の数に増やしたい数をかければいいのではないでしょうか。
0~2の数にしたいなら、分母を1/2にすればいいわけで、
生成した0~1を0~2にするには2をかければいいわけです。

後はsizumaさんの仰るとおりです。