Tag: 随机

随机数彼此不匹配

我想用C生成不同的数字。 我们可以使用stdlib库和srand函数生成一个随机数。 例如; 我想生成0到5之间的随机数。 #include #include #include int main(void) { int i; int n = 4; int array[3]; srand(time(NULL)); for(i = 0; i < n; i++) { array[i] = rand() % 5; printf("%d\n", array[i]); } return 0; 但是相同的数字可能在这里重合。就像这样: 2 4 4 1 我怎么能阻止这个?

如何在c / c ++中的unsigned char数组中生成n个随机1?

这是一个与我刚才提出的问题不同的问题,而且更具挑战性。 我有一个unsigned char数组,比如unsigned char A [16]。 我需要生成一个掩码向量,我将应用于我的数组A [16]。 它应包含n个’1’,其中0 <n <16 * 8(掩码向量可以是数组B [16],只要数组中有n个'1'即可 我还需要在向量中随机分布这n个’1’。 我怎么能用c / c ++做到这一点? 谢谢! 编辑:我的想法如下:我将生成n个随机数(检查需要完成以确保所有n个数字不相同)并将它们存储在数组tmp [n]中。 然后基于移位生成掩模。 srand(time(0)); for(i = 0; i < n; i++){ for(j = 0; j < i; j++) while(tmp[i] == tmp[j]) // to make sure all n random numbers are different tmp[i] = rand()%128; unsigned […]

使用rand的函数初始化矩阵总是以相同的方式

我有一个函数,应该以一个随机的方式初始化矩阵的值,给定一个概率(在这种情况下p(0)= 1/3,p(1)= 2/3)问题是矩阵总是出来是一样的: void init_matrix(short unsigned* m,int* n_gen) { *n_gen=0; int i; for(i=0;i<N_X*N_Y;i++) { if( ( ( rand() % 100 ) % 3) == 0 ) m[i]=0; else m[i]=1; } } 是因为rand()函数的实现? 还是我错误地使用它? 谢谢!

在冒险游戏中随机连接房间

我有以下代码,我随机创建7个房间名称,并给他们一个类型(开始,中间,结束)。 我现在需要随机连接这些房间,每个房间有3到6个连接。 我无所适从。 我找到了一个如何使用bitcode做的例子,但在我的其他post中,我仍然不明白那个版本。 如果有人可以提供帮助,那将非常感激。 以下是房间的相关代码: 这是我宣布房间的地方: void createRooms(char *dir) { //Name of rooms char *roomNames[] = { “a”, “b”, “c”, “d”, “e”, “f”, “g”, “h”, “i”, “j” }; //Filenames for each room char *filenames[] = { “a.txt”, “b.txt”, “c.txt”, “d.txt”, “e.txt”, “f.txt”, “g.txt”, “h.txt”, “i.txt”, “j.txt” }; int rooms[] = {0, 1, 2, 3, […]

第一次调用rand()没有seed() – >相同的数字?

我正在查看可用于多个操作系统的交流程序,并在平台之间为完全相同的数据产生不一致的结果。 看,因为我缺少一些库来编译和调试它在我的系统上。 我注意到它在初始化期间调用rand()而不调用srand(),可能是因为它只需要1个随机值。 现在,我想知道rand()在这种情况下是如何表现的? 是否需要随机库的操作系统初始值? 我目前希望这可以解释每个平台的不同结果,但我缺乏rand()的背景知识,如果没有srand()调用会发生什么。 如果它总是返回操作系统的default-init值,它将解释为什么不同平台产生不同的结果。 任何输入的Thx和抱歉的理论问题 – 没有代码^^。

如何从另一个函数内的随机位置调用C函数?

谁能告诉我如何在C函数内的随机位置插入函数调用(比如Yield() ),这样每次运行代码时,从代码的不同部分调用Yield() ? 我面临着这样的要求:我在协作线程环境中使用2个线程,除非正在运行的线程明确地产生处理器,否则另一个(等待)线程无法开始运行。 我不想将Yield()调用放在单个点上,因为这会使线程序列具有确定性。 如果不重新布线整个环境(从合作到先发制人),这是我能想到的唯一解决方案,Thread_1()在其中的随机位置调用Yield() ,允许Thread_2()接管。 对于达到相同目标的不同解决方案的任何见解也是受欢迎的!

创建随机数

这是我的第一个问题,我正在做一个小游戏,而且为了分配角色,我需要随机数字。 我有这个代码,但有可能数字不重复? 谢谢。 void giveroles() { srand(time(NULL)); int r = rand() % i + 1; switch ( r ) { /* … */ } }

如何在C中使用ISAAC

我从这里下载了isaac64,我的使用有些问题。 我不得不在isaac64.c中评论部分代码,因为它包含main函数。 但我无法使用它…我无法正确初始化它并得到随机数,你能帮助我吗? 我找不到任何例子。 randinit(TRUE); 对于(I = 0; I <10;我++){ 的printf( “%LX \ n” 个,兰特()); } 每次运行此代码时,我都会得到相同的值。 我不知道怎么设种子。

即使你没有随时间播种(NULL),rand()如何制作随机数?

我理解作为参数传入srand()的内容将被用作后来发生的对rand()调用的种子。 通常传入time(NULL) 。 但是如果你只调用srand一次,然后你就会在循环中连续调用rand ,那么这些数字是如何相互不同的呢? 种子是从time(NULL)返回的值time(NULL) …但只使用一个特定的返回值。 那么如何生成不同的数字? 我对C中的线程一无所知。但是每次使用线程和不同的种子,以便后续调用rand实际上会返回随机数吗? 我注意到当我将静态数字传递给srand而不是time(NULL) , rand仍然会生成随机数。

加权随机整数

我想为随机生成的数字指定权重,权重如下所示。 0 | 1 | 2 | 3 | 4 | 5 | 6 ───────────────────────────────────────── X | X | X | X | X | X | X X | X | X | X | X | X | X | X | X | X | X | | X | X | […]