Tag: 随机

“n *(rand()/ RAND_MAX)”是否会产生偏斜的随机数分布?

我想找到一种在C中获取随机数的无法解释的方法(尽管最多我会将它用于0-20的值,更可能只有0-8)。 我已经看过这个公式,但经过一些测试后,我不确定它是否有偏差。 有帮助吗? 这是使用的完整function: int randNum() { return 1 + (int) (10.0 * (rand() / (RAND_MAX + 1.0))); } 我使用以下方法播种: unsigned int iseed = (unsigned int)time(NULL); srand (iseed); 下面建议的那个拒绝为我工作,我试过了 int greek; for (j=0; j<50000; j++) { greek =rand_lim(5); printf("%d, " greek); greek =(int) (NUM * (rand() / (RAND_MAX + 1.0))); int togo=number[greek]; number[greek]=togo+1; } 当我注释掉printf时,它停止工作并给我相同的数字50000次。

如何在time.h中使用函数srand()?

我的程序包含的代码每次执行时都应生成一个随机的正整数。 它只生成一次随机数。 在那之后,当我执行相同的代码时,它给了我相同的值,并且它使我的代码无用。 我开始使用rand函数,然后我将srand()函数与time.h头文件一起使用,但它仍然无法正常工作。 #define size 10 for(i=0;i<size;i++) Arr[i] = rand()%size; 第一次通话(随机): 6 0 2 0 6 7 5 5 8 6 第二次通话(随机但与之前相同): 6 0 2 0 6 7 5 5 8 6 后来我访问了Stack Overflow问题,我读到了srand()函数,我用它作为: #include for(i=0;i<size;i++) Arr[i] = srand(time(NULL)); 第一个电话: -10327 -10327 -10327 -10327 -10327 -10327 -10327 -10327 -10327 -10327 第二个电话: -10326 -10326 -10326 […]

是否有使用时间来播种随机数生成的替代方案?

我试图在计算集群中同时运行一段代码(2000个实例左右)的几个实例。 它的工作方式是我提交作业,群集将在节点每隔一段时间打开时运行它们,每个节点有几个作业。 对于使用时间种子的随机数生成中的大量实例,这似乎产生相同的值。 我可以使用一个简单的替代方案吗? 重复性和安全性并不重要,快速生成独特的种子。 什么是最简单的方法,如果可能的话,跨平台方法会很好。

C编程语言中整数数组中的唯一随机数

可能重复: O(1)中的唯一随机数? 如何在C中填充具有唯一值(无重复项)的整数数组? int vektor[10]; for (i = 0; i < 10; i++) { vektor[i] = rand() % 100 + 1; } //No uniqueness here

如何在C中生成随机浮点数

我找不到从[0,a]找到随机浮点数的解决方案,其中a是用户定义的浮点数。 我尝试了以下,但它似乎无法正常工作。 float x=(float)rand()/((float)RAND_MAX/a)