如何生成一定范围内不重复的随机数?
c语言生成随机数函数。rand()的头文件是stdlib。h
2。在[m,n]范围内生成随机数的语句:rand()%(n-m1)m
3。生成不同随机数范围的方法:
保存获得的随机数。生成一个新的随机数后,将其与获得的随机数进行比较。如果存在,则丢弃它,否则保存它。
因此,我们可以得到不同随机数的函数,最小数为m,最大数为n,总数为k,可以写成:
voidgetuurand(int*a,intm,intn,intk)//结果存在于a{inti,j,tfor(i=0,i<k){t=rand()%(n-m1)mfor(j=0,j<i,j)if(a[j]==t)breakif(j==i)//不要重复a[i]=t//记录随机数。}}
c语言:如何产生不重复的随机数字?
保存生成的随机数,然后在获得新的随机数时,将其与以前保存的值进行比较。如果它已经出现,则丢弃并再次获得,直到获得不同的随机值。
以获取10个0到100之间的非重复随机数为例,代码如下:
#include
#include
#include
intmain()
{
intlist[10],i,j,a
srand(time(null))//设置随机数种子。
for(i=0i<10i)
]{
while(1)
{
a=rand()0//获取一个介于0和100之间的随机数。
for(j=0j<ij)
if(list[j]==a)break//检查是否有重复项。
if(j==i)//无重复值,保存到列表。
{
list[i]=a
break]}]}
for(i=0i<10i)//打印获得的随机数序列。
printf(“%d,”,list[i])
printf(“n”)
返回0
}
原文标题:怎么用记事本写代码 如何生成一定范围内不重复的随机数?,如若转载,请注明出处:https://www.saibowen.com/tougao/17039.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「赛伯温」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。