Li FRANK 2023-07-21 11:53 采纳率: 71.2%
浏览 34
已结题

VBS生成的随机数为什么会不随机?

代码:
Dim a,b
randomize
a=int(rnd*1+
select case a
case O
b="0"
case 1
b="1"
end select
msgbox b
请问为什么输出总是0?谢谢

  • 写回答

1条回答 默认 最新

  • 爱编程的小芒果 2023-07-21 12:26
    关注

    你看看这篇博客:https://blog.csdn.net/weixin_33698823/article/details/93657623
    里面有一段是这样的:
    为了生成某个范围内的随机整数,可使用以下公式:

       Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
    

    这里,upperbound 是随机数范围的上限,而 lowerbound 则是随机数范围的下限。

    举例如下:

    Funtion GetRandomMath(m,n)
      Randomize
      GetRandomMath = Int(((n-m+1) * Rnd) + m)
    End Function
    msgbox GetRandomMath(20,30)
    

    注意:若想得到重复的随机数序列,在使用具有数值参数的 Randomize 之前直接调用具有负参数值的 Rnd。使用具有同样 number 值的 Randomize 是不会得到重复的随机数序列的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月21日
  • 已采纳回答 7月21日
  • 创建了问题 7月21日