vb 怎样随机数数组,vb产生随机数

发布时间:2020-07-10 18:18:06

vb 怎样随机数数组,vb产生随机数

网友回答

首先介绍一下随机数函数
  函数名称Randomize 用法Randomize(x) 说明:初始化随机数发生器
  函数名称rnd 用法rnd(x) 返回[0,1)之间的随机数
  其中x可以省略
  用rnd产生的数字是小数,必须另外设定格式,比如要0-99之间的随机整数,即
  dim s as integer
  s=rnd()*100
  就行了
  如果需要多次,大量产生随机数(对随机数要求高一些)就在rnd()语句前面一行插入randomize(x)
  如果要对一个一维数组(比如上界为5)赋值:
  .........
  dim shuzu(5) as integer, i as short
  for i=0 to 5
  a(i)=rnd()
  next
  .........
  如果需要多维数组利用循环的嵌套就可以了

网友回答

我理解为1-50的数字中,随机取8个
  需要两个控件text1和mand1
  代码如下:
  Option Explicit
  Dim i, j, k
  Dim s(8)
  Dim cf As Boolean
  Private Sub Command1_Click()
  Text1.Text = ""
  i = 1
  Do While i <= 8 '第一层循环,用于取8个数
      cf = False '是否取到了重复的数
      Randomize
      k = Int(Rnd() * 50) + 1 '获取随机数
      For j = 1 To i '第二层循环,判断是否取到的数字发生了重复
          If k = s(j) Then '当发生重复的时候标记cf变量
              cf = True
              Exit For
          End If
      Next
      If cf = False Then '如果取得数字没有重复,进行赋值,并显示在text1文本框
          Text1.Text = Text1.Text & k & Chr(13) & Chr(10)
          s(i) = k
          i = i + 1 '继续取下一个数字,直到i=8
      End If
  Loop
  Printer.FontSize = 30 '打印字体大小
  Printer.Print Text1.Text '打印文本框
  Printer.EndDoc '输出打印
  End Sub
  数字8代表要取多少个,数字50代表总共有多少数字,自己修改就行了
  当随机数恰好等于50.00000的时候会出错,这个情况大约有10万分之一的可能性
  可以将If k = s(j) Then改成If k = s(j) or k=51 Then来排除
  要把50个数字改成50个名字
  只要在form_load的时候做一个数组
  dim name(50)
  name(1)="张三"
  name(2)="李四"
  …………
  然后将代码部分的k改成name(k) ,数组s(j) s(i)也要改成name(j) name(i)
  for i=1 to 8
    Printer.Print name(i)
  next
  这样打出来的是姓名
  打印格式自己设定
以上问题属网友观点,不代表本站立场,仅供参考!