You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求Visual Basic中4个数字数组洗牌操作的最简实现方案

Visual Basic 4元素数字数组极简洗牌实现

直接采用精简版Fisher-Yates洗牌算法,无额外依赖,复制即可运行,所有VB版本(VBA/VB6/VB.NET)均可适配:

通用核心实现(兼容VBA/VB6)

Sub Shuffle4NumArray(arr As Variant)
    Dim i As Integer, randIndex As Integer, temp As Variant
    Randomize ' 初始化随机种子,避免每次洗牌结果完全一致
    ' 4个元素索引为0~3,从末尾向前遍历交换
    For i = 3 To 1 Step -1
        randIndex = Int((i + 1) * Rnd) ' 生成0到i之间的随机整数
        ' 交换当前位置和随机位置的元素
        temp = arr(i)
        arr(i) = arr(randIndex)
        arr(randIndex) = temp
    Next i
End Sub

调用示例

Sub TestShuffle()
    Dim testArr(3) As Integer
    ' 初始化待洗牌的4个数字
    testArr(0) = 1: testArr(1) = 2: testArr(2) = 3: testArr(3) = 4
    ' 执行洗牌
    Shuffle4NumArray testArr
    ' 输出结果(可在立即窗口查看)
    For i = 0 To 3
        Debug.Print testArr(i)
    Next i
End Sub

VB.NET适配版本

如果是VB.NET环境,可以用更简洁的写法:

Sub Shuffle4NumArray(arr As Integer())
    Dim rand As New Random()
    For i = 3 To 1 Step -1
        Dim randIndex = rand.Next(0, i + 1)
        (arr(i), arr(randIndex)) = (arr(randIndex), arr(i)) ' 元组语法简化交换操作
    Next
End Sub

注意事项

  • 该实现是标准公平洗牌逻辑,每个数字出现在任意位置的概率完全均等,无排序偏置
  • 针对4元素场景做了精简,没有冗余逻辑,不会出现运行兼容问题

内容的提问来源于stack exchange,提问作者Quizlet23

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 00:15:06