vb中生成不重复随机数(vb中生成不重复随机数代码)

http://www.itjxue.com  2023-03-02 03:54  来源:未知  点击次数: 

vb怎么产生不重复随机数

先声明一个存放随机数的数组,然后遍历数组,如果重复再随机生成一个替换

vb中怎么生成不重复的随机数

Private?Sub?Command1_Click()

????txtoutput?=?Rndz(1,?38)

End?Sub

Private?Function?Rndz(a?As?Long,?b?As?Long)

????Randomize

????Rndz?=?Int((a?-?b?+?1)?*?Rnd()?+?b)

End?Function

在vb中怎么随机产生不重复的数字

产生不重复的,需要在程序里保存一个已经生成的数字列表。每次随机生成的时候就在之中搜索有无同样的,如果有,就重新生成。

例:

假如要生成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;

}

}

vb产生不重复的随机数

Private?Sub?Form_Load()

Randomize

Show

Dim?a(1?To?30)?As?Integer,?g(1?To?9)?As?Integer

a(1)?=?Int(10?+?90?*?Rnd)

k?=?1??'k表示生成的20个数字的个数

Do?While?k??30

x?=?Int(10?+?90?*?Rnd)

f?=?0??'首先置f=0

If?x?=?a(k)?Then?f?=?1?'如果新生成的随机数x与a(k)相同,则置f=1,此处只与前一个值比较,是错误的

If?f?=?0?Then??'如果x与a(k)不同,此时f=0

k?=?k?+?1??????'K增加一个数字

a(k)?=?x???????'把x赋值给a(k)数组

End?If

Loop

For?j?=?1?To?30

Print?a(j);???????'打印数组

If?j?Mod?10?=?0?Then?Print???'每10个一行

Next?j

Print

For?j?=?1?To?30

h?=?Int(a(j)?/?10)

g(h)?=?g(h)?+?1

Next?j

For?j?=?1?To?9

Print?10?*?j;?"-";?10?*?j?+?9,?g(j)

Next?j

End?Sub

(责任编辑:IT教学网)

更多

推荐广告特效文章