这是奔跑的键盘侠的第201篇文章
作者|我是奔跑的键盘侠
来源|奔跑的键盘侠(ID:runningkeyboardhero)
转载请联系授权
题目003:生成0-1之间的随机小数,不能用自带的随机数函数,不能有明显的规律。
关于随机数,其实应用十分广泛,有时候可能都没意识到,突然就进坑了
1
随机数的经典应用场景
随机数在编程方面拥有大量应用,以下是一些较为经典的应用:
2
代码赏析
思路一:基于时间戳生成随机数
按键精灵语言内置函数 GetTime() 可以返回当前时间的毫秒数,我们可以利用该函数生成随机数。
rand = GetTime() % 100
没错,就一行,大道至简。上述代码中,将当前时间的毫秒数对 100 取模,可得到一个介于 0~99 之间的随机数。但是,这种方法的缺点是在同一毫秒内可能生成相同的随机数,因此随机性较差。
思路二:基于数组随机访问生成随机数
我们可以预定义一个数组,然后利用随机数选择数组中的元素作为生成的随机数。
dim arr[10], rand
arr[0] = 1
arr[1] = 3
arr[2] = 7
arr[3] = 11
arr[4] = 13
arr[5] = 17
arr[6] = 19
arr[7] = 23
arr[8] = 29
arr[9] = 31
rand = arr[Int(Rnd() * 10)]
上述代码中,我们预定义了一个长度为 10 的数组,并给其中的元素赋值。然后通过 Int(Rnd() * 10) 计算出介于 0~9 之间的随机整数,再利用该随机整数选择数组中对应的元素。这种方法相对于第一种方法的优点是随机性更好,缺点是需要事先定义数组并赋值。
所以,不同思路有着不同的优缺点,在选择方法时,一定要考虑到场景。比如号码抽奖,一个号码是否可以中2次以上,如果不可以,那使用第一个思路很可能会翻车。
-END-
© Copyright
奔跑的键盘侠原创作品 | 尽情分享朋友圈 | 转载请联系授权