我用rnd函数来得到随机数,发现得到的数有0,还有重复出现的,这个问题怎么解决?

解决方案 »

  1.   

    rnd()
    得到0-1之间的数
    所以int(rnd)当然会取0,
    如果不想去零,可以int(rnd()+1)
    Randomize
      

  2.   

    Rnd 函数
          返回一个包含随机数值的 Single。语法Rnd[(number)]可选的 number 参数是 Single 或任何有效的数值表达式。返回值如果 number 的值是 Rnd 生成 
    小于 0 每次都使用 number 作为随机数种子得到的相同结果。 
    大于 0 序列中的下一个随机数。 
    等于 0 最近生成的数。 
    省略 序列中的下一个随机数。 
    说明Rnd 函数返回小于 1 但大于或等于 0 的值。number 的值决定了 Rnd 生成随机数的方式。对最初给定的种子都会生成相同的数列,因为每一次调用 Rnd 函数都用数列中的前一个数作为下一个数的种子。在调用 Rnd 之前,先使用无参数的 Randomize 语句初始化随机数生成器,该生成器具有根据系统计时器得到的种子。为了生成某个范围内的随机整数,可使用以下公式:Int((upperbound - lowerbound + 1) * Rnd + lowerbound)这里,upperbound 是随机数范围的上限,而 lowerbound 则是随机数范围的下限。注意 若想得到重复的随机数序列,在使用具有数值参数的 Randomize 之前直接调用具有负参数值的 Rnd。使用具有同样 number 值的 Randomize 是不会得到重复的随机数序列的。
      

  3.   

    为了生成某个范围内的随机整数,可使用以下公式:Int((upperbound - lowerbound + 1) * Rnd + lowerbound)Int((100 - 1 + 1) * Rnd + 1) = Int(100 * Rnd + 1)生成从 1 ~ 100 的随机数