随机化数字的特定位置?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (24)

例如,我有数字1,9,7,4,我想随机化他们的位置,所以我会得到9,1,4,7或7,1,9,4等等。你知道怎么做吗?

提问于
用户回答回答于

下面是一个基本的VBA随机化到一个字典对象中。

Dim vals As Variant, ord As Object

Set ord = CreateObject("scripting.dictionary")

vals = Array(1, 4, 7, 9)

Do While ord.Count < (UBound(vals) + 1)
    ord.Item(vals(Application.RandBetween(LBound(vals), UBound(vals)))) = vbNullString
Loop

Debug.Print Join(ord.keys, ", ")
用户回答回答于

这里有一个更有可能(简单化)的例子:

Sub sub1()
  Dim i1&, i2&, iswap&, a4 As Variant
  a4 = Array(1, 9, 7, 4)
  For i1 = 0 To 3
    i2 = Int(Rnd() * 4) ' random integer 0 to 3
    iswap = a4(i1) ' swap(a4(i1), a4(i2))
    a4(i1) = a4(i2)
    a4(i2) = iswap
  Next i1
  Debug.Print a4(0); a4(1); a4(2); a4(3) ' Ctl-G to view, F7 to get back to code
End Sub

所属标签

可能回答问题的人

  • 天使的炫翼

    15 粉丝531 提问35 回答
  • 旺仔小小鹿

    社区 · 运营 (已认证)

    48 粉丝0 提问27 回答
  • 富有想象力的人

    2 粉丝0 提问26 回答
  • 发条丶魔灵1

    6 粉丝525 提问25 回答

扫码关注云+社区

领取腾讯云代金券