Tag: 随机

播种随机数发生器

我不记得看到任何程序调用srand与srand(time(NULL))任何东西。 在什么情况下会用一些其他值来调用srand ?

如何在C中随机生成0或1

我已经阅读了很多关于这个主题的post: rand()如何工作? 它有一定的倾向吗? 有没有比这更好用的东西? 随机数生成器如何在C中工作 这就是我得到的: 1)xn + 1取决于xn即生成的先前随机数。 2)不建议在程序中多次初始化种子。 3)使用rand()%2随机生成0或1是一种不好的做法。 我的问题是: 1)是否有任何其他库我错过了看看生成一个完全随机的数字(0或1)而不依赖于以前的输出? 2)如果还有其他工作使用内置的rand()函数来满足要求? 3)在程序中多次初始化种子的副作用是什么? 代码段: srand(time(NULL)); d1=rand()%2; d2=rand()%2; 在这里,我的目的是使d1和d2完全相互独立。 我最初的想法是这样做: srand(time(NULL)); d1=rand()%2; srand(time(NULL)); d2=rand()%2; 但正如我之前提到的基于其他post,我认为这是一种不好的做法? 那么,任何人都可以回答上述问题吗? 如果我完全错过了一件明显的事,我道歉。

兰德函数在c

可能重复: C的rand()使用了哪些常用算法? 如何在c库中定义rand函数。 rand函数的时间复杂度是多少? 如果有人可以提供rand函数的源代码(我不需要它的实现,但源代码),那就太好了。 感谢名单

外部范围时未定义变量

编写一个程序,让用户抛出五个骰子并以“图形方式”显示结果屏幕。 该程序应该首先通过填充一个介于1之间的5个数字的数组来模拟五个掷骰子然后,函数应该通过在屏幕上显示字符和计算函数来“绘制”结果总和。 我得到第一个函数的错误消息,它说我没有定义矩阵,我在“if”中定义了。 #include int sumOfDie(int inputArray[], int arraySize); int drawDie(int inputArray[], int arraySize) { int i, row, column=0; for (i=0; i<arraySize; i++) //determine the graphic number from the random number { if (inputArray[i]==1) { char matrix [3][4] = {{" "},{" * "},{" "}}; } if (inputArray[i]==2) { char matrix [3][4] = {{"* "},{" "},{" […]

使用setstate(3)不会产生预期的随机数序列

对于多人游戏,我需要在所有参与设备上生成相同的随机数序列。 显然,这是通过在所有设备上使用相同的种子来实现的。 当在所有设备上产生相同序列的例程之外调用random()时会出现问题。 因此,在这个例程中,我尝试使用setstate来保存状态数组。 据我所知, man random(3) ,在此例程之外调用random()不应该改变序列。 但是,以下代码不会为Run 1和2生成相同的输出: #include #include #include int main(int argc, const char * argv[]) { char state[256]; printf(“Run 1 : “); initstate(123, state, 256); for (int i=1; i < 10; i++) { printf("%ld ", random()); } printf("\nRun 2 : "); initstate(123, state, 256); for (int i=1; i < 10; […]

从.txt文件中读取随机行

我正试图通过从.txt文件中读取随机单词来升级我的Hangman游戏。 事实是,我无法弄清楚如何从.txt文件中读取随机行。 .txt文件的每个新行都有单个单词。 void ler_palavras() { FILE *words; if ((words = fopen(“words.txt”, “r”)) == NULL) { printf(“Error! opening file”); exit(1); } // reads text until newline fscanf(words,”%[^\n]”, word); fclose(words); }

在之间生成随机

我想生成0到1之间的随机浮点值,不包括1,即[0, 1) 。 我搜索了很多,但我找不到这个答案。 我尝试了以下技巧,但它会产生负值 (double)rand()/(double)RAND_MAX-1;

C编程; 生成具有随机数的二维矩阵,无需重复

我想通过在行和列中的元素中插入随机数而不重复来生成6×6矩阵。 到目前为止这是我的代码。 谢谢您的帮助! #include #include int main(void) { int array[6][6]; int rows, columns; int random; srand((unsigned)time(NULL)); for(rows=0;rows<6;rows++) { for(columns=0;columns<6;columns++) { random=rand()%36+1; array[rows][columns] = random; printf("%i",array[rows][columns]); } printf("\n"); } return 0; }

从C中的数组中随机选取字符串

void pick() { char* words[2]; words[0] = “blah”; words[1] = “hmm”; char random; srand(time(NULL)); random = words[rand() % 2]; printf(random); return; } 这是我的代码,我想从单词数组中随机选择一个单词,但是当我运行它时,编译器说:[警告]赋值从指针生成整数而没有强制转换[默认启用]

Rand()基于C语言的算法是什么?

我一直在研究Rand()的源代码,但直到现在我还无法弄清楚函数的全貌。 以下是我发现和研究的源代码: rand.c random.c 有人可以为我提供一些建议或帮助吗? 太感谢了!