产生不重复的,需要在程序里保存一个已经生成的数字列表。每次随机生成的时候就在之中搜索有无同样的,如果有,就重新生成。
专业从事企业网站建设和网站设计服务,包括网站建设、申请域名、雅安服务器托管、企业邮箱、微信公众号开发、微信支付宝成都小程序开发、成都APP应用开发、软件开发、等服务。公司始终通过不懈的努力和以更高的目标来要求自己,在不断完善自身管理模式和提高技术研发能力的同时,大力倡导推行新经济品牌战略,促进互联网事业的发展。
例:
假如要生成5个数字,则
include
time.h
include
stdlib.h
int
numgen[5]
=
{0,
0,
0,
0,
0};
int
index
=
0;
bool
isgenerated(int
newnum)
{
for(int
i=0;
iindex;
i++)
{
if(numgen[i]
=
newnum)
return
true;
}
return
false;
}
void
main()
{
srand((unsigned)time(null));
int
newnum
=
rand();
for(index
=
0;
index
5;
index++)
{
while(!isgenerated(newnum))
newnum
=
rand();
numgen[index]
=
newnum;
}
}
随机数不能保证完全不重复,但是你可以这样:
另设一个布尔数组作为状态,初值都设为false,和词语的数组一一对应,抽到某个词语后,把相应的状态设为true,以后如果重复,就会发现对应的状态为true,这样你可以忽略这次的抽取动作而取下一个随机数直至所有的状态都为true,你的程序就再也抽不出任何词语了。
先声明一个存放随机数的数组,然后遍历数组,如果重复再随机生成一个替换
vb生成10个不重复的随机数代码:
Private Sub Command1_Click()
Dim a(9) As Integer
For i = 0 To 9
GoTo way1
End If
Next p
End If
Print a(i)
Next i
End Sub
扩展资料:
随机数字:
(1)生成随机数比较简单,=rand()即可生成0-RAND_MAX之间的随机数;(#define RAND_MAX 0x7fffu)
(2)如果要是整数,就用=int(rand()%10),表示0至9的整数,以此类推;
(3)如果要生成a与b之间的随机实数,就用=rand()%(b-a+1)+a,就能产生固定位数的整数了,以此类推。