c - 如何生成 [0,1] 之间具有 3 个分数的随机数

标签 c random montecarlo

我想生成 0 到 1 之间的随机数(包括 0 和 1),但小数点后只有 3 位小数,如下所示:

0.000, 0.214, 0.523, 0.451, 0.102, 1.000

小数点后三位的目的不是为了打印。我想实现蒙特卡罗技术来获取 PI 的值。所以它适用于 if 语句。因此,我想将随机值分配给这样的变量:

double x = 0.241;

最佳答案

您可以生成一个 0 到 1000 之间的随机整数并将其除以 1000

以下 C 代码生成所需的随机值

#include <time.h>
#include <stdlib.h>

srand(time(NULL));
double r = (double)(rand()%1001)/1000;

关于c - 如何生成 [0,1] 之间具有 3 个分数的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26445101/

相关文章:

linux - 确定/dev/random 是否减慢进程

python - 蒙特卡罗模拟 : Underlying distribution parameter changes during simulation run based on conditions

c - 将长值从 fork 进程传递给其父进程

c - 改进排序目录的名字和姓氏的打印

c - C 中 realpath 函数的示例

C++ - 随机选择字符串而不选择它超过一次

在c中组合多个整数

java - 我的 2d Android 游戏遇到问题

c - 蒙特卡罗积分优化

python - python中的蒙特卡洛模拟骰子