ランダムな実数x,y(0 <= x <= 1, 0 <= y <= 1)を出力する以下のプログラムを実行したところ、
c言語
1#include<stdio.h> 2#include <stdlib.h> 3#include <time.h> 4 5int main(void) { 6 double x, y, d; 7 srand((unsigned)time(NULL)); 8 x = (double)rand() / RAND_MAX; 9 y = (double)rand() / RAND_MAX; 10 d = x * x + y * y; 11 printf("(%lf, %lf)\n", x, y); 12}
次のようになった。
(x, y) = (0.755291, 0.182222) (x, y) = (0.755307, 0.445297) (x, y) = (0.755307, 0.445297) (x, y) = (0.755315, 0.576835) (x, y) = (0.755323, 0.708373) (x, y) = (0.755988, 0.889085) (x, y) = (0.755996, 0.020622) (x, y) = (0.756004, 0.152160) (x, y) = (0.756011, 0.283698) (x, y) = (0.756019, 0.415236)
x、y共にランダムになっているが、xの値は0.75から始まる実数しか出力されていない。なぜこのような結果になるのかわからない。
教えてください。
(補足)
プログラム全体を10回ほど数秒おきに実行した結果です。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/06 15:55