高分求助 vb产生几个不重复随机数

在text中输入m个不重复数字 按下按钮出现n个不重复数字(在我输入的数字范围内) 比如我分别输入了1 2 3 4 5 6 7 8 9 然后产生4个1-9内的不重复随机数 额 表达能力有点问题 不知道我说的各位能否懂

在窗体内加入控件text1,text2,text3,command1,然后复制下面代码,运行即可。当你在text1内输入数字后,在text2内输入数字范围,按command1按钮,text3就会显示N个不重复随机数。

Option Explicit

Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer, ss, tt() As Integer, outzf As String
ss = Split(Text1.Text, ",")
ReDim tt(UBound(ss))
k = Val(Text2.Text)
If k > UBound(ss) + 1 Then
MsgBox "你输入要产生的数量大于数字列表,请更正!"
Exit Sub
End If
'Randomize
Do
j = Rnd * k
If tt(j) = 0 Then
tt(j) = 1
outzf = outzf & ss(j) & ","
i = i + 1
End If
DoEvents
Loop Until i = k
Text3.Text = outzf
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-10-23
正在写…………

太晚了 明天再继续吧

Private Sub Command1_Click()
Dim shuzu(20)
Text1 = Replace(Text1, ",", "") '首先防止输汉字的逗号
If Right(Text1, 1) = "," Then
Text1 = Left(Text1, Len(Text1) - 1)
End If '这里防止最后的逗号后无数字
douhao = InStr(Text1, ",")

………………
以下继续
End Sub
第2个回答  2009-10-23
几个textbox?
是不是随机抽样?
-----------------------------
以下是随机抽样的做法(随便输入几个数字,在当中随机选出几个数字):

1. 单纯随机取样法先把每个个体编号,然后用抽签的方式从总体中抽取样本。这种方法适用于个体间差异较小、所需抽选的个体数较少或个体的分布比较集中的研究对象。
2. 分区随机取样法将总体随机地分成若干部分,然后再从每一部分随机抽选若干个体组成样本。这种抽样法可以更有组织地进行,而且中选的个体在总体的分布比单纯随机取样更均匀。
3. 系统取样法先有系统地将总体分成若干组,然后随机地从第一组决定一个起点,如每组15个元素,决定从第一组的第13个元素选起,那么以后选定的单位即28,43,58,73等等。
4. 分层取样法根据对总体特性的了解,把总体分成若干层次或类型组,然后从各个层次中按一定比例随机抽选。这种方法的代表性好,但若层次划分得不正确,也不能获得有高度代表性的样本。

------------------------------------------

创建text1,text2,command1
理念:rnd()随机产生的数字的最后一位数字 和 最后两位数字,如果倒数第二位是0,则选择0,如果不为0则选择最后一位数字。

text1中输入一个数字后,空格,再输入另外一个数字. (空格来判断)

Dim i As Integer
Dim Num() As String
Dim a As Integer
Dim b()

Private Sub Command1_Click()
Num() = Split(Text1.Text) '空格来判断
Text2.Text = ""
b() = Array("", "", "", "", "") '4个数字不重复
For a = 1 To 4 '循环4次得到
Abc:
i = Right(Rnd(), 1)
If Right(Rnd(), 2) - i = 0 Then
i = 0
End If
If i = b(0) Or i = b(1) Or i = b(2) Or i = b(3) Then
GoTo Abc
End If
b(a) = i '将已经选过的数字放入一个容器中
Text2.Text = Text2.Text & Num(i) & ","
Next a
End Sub
第3个回答  2009-10-23
首先将你输入的数字放到数组里
第二步,根据数组长度,随即求得数组下标
第三步将随机下标的数字输出(并记住下标,下次随即判断是否已经输出)