
正文
c语言随机输出不一样的数据,c语言随机生成一组不同的数
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言如何产生不重复的随机数
可以将生成的随机数放入数组中,每次遍历数组,有相同的重新生成随机数。知道生成4个即退出循环。
null的值就是0,因此srand(time(null)和srand(time(0))是一样的。都是0 而 time(time_t time)里面的time_t time,也就是给指针赋值个0,就是:time = null,是允许的。
下面是用C产生0-9的随机数,rand()函数产生的是伪随机数,反复调用函数rand所产生的一系列数似乎是随机的,但每次执行程序所产生的序列则是重复的。
]里面放10个数,然后你设计一个函数,函数里随机生成一个0-9的随机数i,然后a[0]和a[i]交换,然后在你20次循环的一次循环里,跑100次这个函数,生成一组新数组。
我觉得你的程序逻辑似乎不对,看程序a的值应该来自数组num[],假如在第一个for循环中生成的x值为1,第二次仍然生成1,程序将陷入死循环,又或者a是某个特定值,只是你应该给出说明。
for(i=0;i10;i++) printf(%4d,a[i]);}如图所示,rand产生不了不重复的随机数,所以方法就是把产生的重复的去掉。我这里举个例子,按照这个思路,插入到你的程序里就行了。望采纳。。
相关问答
Q1: 用C语言如何实现多线程同时运行的情况下,各个线程输出不同的随机数?
1、a[i]=rand();不是写的明白了吗,srand你没写啊,要先设置种子,编译器里如果不设置种子,种子会默认为0,那么每次运行的随即数都一样的。用time函数来改变种子,就可以很好的体现出“真正的随即”了。
2、第一步,打开C语言编译器并创建一个新的初始.cpp文件,例如“test.cpp”,见下图,转到下面的步骤。第二步,执行完上面的操作之后,输入C语言代码,见下图,转到下面的步骤。
3、因为你没有加同步互斥机制,所以如果没有足够的sleep的话,线程函数和main函数里的printf(%d\n,pid);之间的顺序是未知的,视你的系统环境而定。
Q2: 用c语言怎么生成20个[0,20]不相等的随机数?
:其实可以不用写srand() ,只用rand()就可以了,省事,简单,例子如下 如果我们想得到一个 0-60的随机数那么可以写成 int i;i=rand()%60;就可以了。
]里面放10个数,然后你设计一个函数,函数里随机生成一个0-9的随机数i,然后a[0]和a[i]交换,然后在你20次循环的一次循环里,跑100次这个函数,生成一组新数组。
Q3: C语言生成100%不相同的随机数
利用srand((unsigned int)(time(NULL))是一种方法,因为每一次运行程序的时间是不同的。在C语言里所提供的随机数发生器的用法:现在的C编译器都提供了一个基于ANSI标准的伪随机数发生器函数,用来生成随机数。
数学意义上的随机数在计算机上已被证明不可能实现。通常的随机数是使用随机数发生器在一个有限大的线性空间里取一个数。“随机”甚至不能保证数字的出现是无规律的。
))是一样的。都是0 而 time(time_t time)里面的time_t time,也就是给指针赋值个0,就是:time = null,是允许的。
test.cpp。在test.cpp文件中,输入C语言代码:srand((unsigned)time(NULL));for (int i = 0;i 100; i++) { printf(%d , rand());} 编译器运行test.cpp文件,此时成功随机生成了100个随机数。
Q4: C语言程序:从N个数中随机取出100个不同的数
可以创建完数组后,for循环整个数组,将奇数的元素删除。
test.cpp。在test.cpp文件中,输入C语言代码:srand((unsigned)time(NULL));for (int i = 0;i 100; i++) { printf(%d , rand());} 编译器运行test.cpp文件,此时成功随机生成了100个随机数。
int a[9][8];定义数组包含math.h time.h头文件 运用rand()函数和系统时间用系统的时间做随机种子。
首先要确定这100个数的范围,比如0-99。然后抽取随机数,并利用模除限定范围,每当抽取到一个新的数时,同历史数据比较,如果有重复则放弃。 直到抽取到不重复的10个数为止。
关于c语言随机输出不一样的数据和c语言随机生成一组不同的数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







