加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

vb6 – 从1到10的不同数字

发布时间:2020-12-17 00:32:12 所属栏目:大数据 来源:网络整理
导读:我想从0-9的范围内生成10个不同的数字.所需的输出可能如下所示,9 0 8 6 5 3 2 4 1 7 Dim arraynum(9) As IntegerDim crmd As BooleanDim rmd as integerFor i = 0 To 9 arraynum(i) = -1Next icrmd = TrueRandomize TimerFor i = 0 To 9 rmd = Int(Rnd * 10)
我想从0-9的范围内生成10个不同的数字.所需的输出可能如下所示,9 0 8 6 5 3 2 4 1 7
Dim arraynum(9) As Integer
Dim crmd As Boolean
Dim rmd as integer

For i = 0 To 9
    arraynum(i) = -1
Next i

crmd = True
Randomize Timer
For i = 0 To 9
    rmd = Int(Rnd * 10)
    For j = 0 To 9
        If arraynum(j) = rmd Then
            j = 9
            If crmd = False Then
                i = i - 1
            End If
            crmd = True
        Else
            crmd = False
        End If
    Next j
    If crmd = False Then
        arraynum(i) = rmd
        QuestionILabel.Caption = QuestionILabel.Caption + Str(arraynum(i))
    End If
Next i
选择随机值然后扔掉那些你已经使用过的值是一个坏主意.随着可用数量池越来越少,它会使运行时间变长,因为您丢弃的越来越多.

你想要的是一个随机列表,我将使用以下代码实现(伪代码,因为它的功课):

dim n[10]                 // gives n[0] through n[9]
for each i in 0..9:
    n[i] = i              // initialize them to their indexes
nsize = 10                // starting pool size
do 10 times:
    i = rnd(nsize)        // give a number between 0 and nsize-1
    print n[i]
    nsize = nsize - 1     // these two lines effectively remove the used number
    n[i] = n[nsize]

只需从池中选择一个随机数,然后将其替换为该池中的顶部数字并减小池的大小,即可获得一个随机播放,而无需担心前面的大量交换.如果数量很高,这很重要,因为它不会引入不必要的启动延迟.

例如,检查以下基准检查:

<--------- n[x] ---------->
for x = 0 1 2 3 4 5 6 7 8 9  nsize  rnd(nsize)  output
---------------------------  -----  ----------  ------
        0 1 2 3 4 5 6 7 8 9     10           4       4
        0 1 2 3 9 5 6 7 8        9           7       7
        0 1 2 3 9 5 6 8          8           2       2
        0 1 8 3 9 5 6            7           6       6
        0 1 8 3 9 5              6           0       0
        5 1 8 3 9                5           2       8
        5 1 9 3                  4           1       1
        5 3 9                    3           0       5
        9 3                      2           1       3
        9                        1           0       9

您可以随时查看游泳池的减少情况,因为您总是将未使用的游泳池替换为未使用的游泳池,因此您永远不会重复游戏.

现在你的作业包括把它变成VB

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读