vb.net随机数生成 vb随机数生成器

vb.net程序,利用随机函数产生100个1到100之间的整数,求其中的最大最小值 。Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Randomize()'产生随机数种子 以防止每次生成结果都一样
Dim a(100) As Integer '声明数组存放数据 用来保存随机数结果
Dim max As Integer, min As Integer'声明两个变量存最大值和最小值
min = 1000 : max = 0 '设置初值
For i = 0 To 99'循环100次
a(i) = Int(Rnd() * 1000 + 1) '用rnd生成一个随机数由于rnd范围为0-1之间的小数.所以*1000设置他的范围为0到999之间 加1变成1到1000之间
If a(i) = max Then max = a(i) '如果当前数值大于最大值的变量就保存
If a(i) = min Then min = a(i) '如果当前数值小于最小值的变量就保存
Next
MsgBox("最大值为"max)
MsgBox("最小值为"min)
End Sub
《VB.NET》中的“Randomize(x)”和“Rnd(x)”Rnd[(number)]
number
的值决定了
Rnd
生成随机数的方式
如果
number
的值
Rnd
生成
小于
每次都使用
number
作为随机数种子得到的相同结果 。
大于
序列中的下一个随机数 。
等于
最近生成的数 。
省略
序列中的下一个随机数 。
====================
先讨论没有加randomize时
X小于0

rnd(-1)
以-1为种的随机数永远相同
X大于0

rnd(1)
系统会先生成随机数列表
有N个随机数
你每执行一次rnd(1)就获取列表中下一个随机数
比如有这么个列表
程序开始时
得到0.7055475
执行第二次rnd(1)得到0.533424
第三次0.5795186
你关闭程序重新打开
第一次得到还是0.7055475
.7055475
.533424
.5795186
.2895625
.301948
而你说的X0
X0没差别
是错的
【vb.net随机数生成 vb随机数生成器】Print
Rnd(1)
Debug.Print
Rnd(-2)

Debug.Print
Rnd(-2)
Print
Rnd(1)
结果是不一样的
X等于0
最近生成的数
一般为科学型数值
这个值也是不变的
rnd(x)
省略x不写
就和X0
效果一样
=========================
Randomize

number

Rnd
函数的随机数生成器初始化,该随机数生成器给
number
一个新的种子值 。如果省略
number , 则用系统计时器返回的值作为新的种子值 。
如果没有使用
Randomize , 则(无参数的)Rnd
函数使用第一次调用
Rnd
函数的种子值 。
注意
若想得到重复的随机数序列,在使用具有数值参数的
Randomize
之前直接调用具有负参数值的
Rnd 。使用具有同样
number
值的
Randomize
是不会得到重复的随机数序列的 。
一般在使用rnd获取随机数
都是
randomize
int(rnd*(上限-下限+1)+下限)
这2个函数的X都是省略不写
怎么用vb.net随机产生5个不同的数 , 范围1-33,求帮忙改一下Private Sub Command1_Click()
Dim num(6) As Integer
Dim i As Integer, j As Integer
Dim tmp As Integer
Randomize '防止每次生出随机数一样
For i = 0 To 5
num(i) = Int(Rnd * 53) + 1
Next
PrintNum "新生成vb.net随机数生成的6个随机数为vb.net随机数生成:", num()
For i = 0 To 5
For j = 0 To 5
If num(j)num(j + 1) Then
tmp = num(j)
num(j) = num(j + 1)
num(j + 1) = tmp
End If
Next
Next
PrintNum "排序后vb.net随机数生成的6个随机数为vb.net随机数生成:", num()

推荐阅读