Mar*_*iot 22
您可以使用stdlib.h生成伪随机数.只需包含stdlib,然后调用
double random_number = rand() / (double)RAND_MAX;
Run Code Online (Sandbox Code Playgroud)
假设OP想要0或1:
srand(time(NULL));
foo = rand() & 1;
Run Code Online (Sandbox Code Playgroud)
编辑通过评论的启发:旧rand()的实现有一个缺陷-低位有高于序位短得多的时间,以便使用低阶位的这种实现是不好的.如果您知道您的rand()实现受到此缺陷的影响,请使用高位,如下所示:
foo = rand() >> (sizeof(int)*8-1)
Run Code Online (Sandbox Code Playgroud)
假设常规的每字节8位架构
男子3 drand48是正是你问什么.
所述drand48()和erand48()函数返回非负,双精度浮点值,在区间[0.0,1.0]均匀地分布.
这些可以在#include <stdlib.h>UNIX平台上找到.但是,它们不在ANSI C中,因此(例如)除非您自带实现(例如LibGW32C),否则您将无法在Windows上找到它们.