我想生成介于0和1之间的随机数(包含0和1),但小数点后只有3个分数,如下所示:
0.000, 0.214, 0.523, 0.451, 0.102, 1.000
三位小数的目的不是用于打印。我想实现蒙特卡罗技术来获得PI的价值。所以这是if
陈述。因此,我想将随机值分配给这样的变量:
double x = 0.241;
答案 0 :(得分:1)
你可以生成0到1000之间的随机整数,并将其除以1000
以下c代码生成所需的随机值
#include <time.h>
#include <stdlib.h>
srand(time(NULL));
double r = (double)(rand()%1001)/1000;
答案 1 :(得分:-1)
使用随机函数计算0到1000之间的随机数,然后将其除以1000。 注意,当你使用时间函数生成随机数时,你会得到相同的数字,直到PC时钟具有相同的值 例如:
11:20:20 PM > generate random number: 10
11:20:20 PM > generate random number: 10
11:20:20 PM > generate random number: 10
11:20:21 PM > generate random number: 989
所以,每秒生成一个数字或找到一些黑客(你可以通过google轻松找到它,已经给出了很多关于stackoverflow的答案)