前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >按键精灵进阶之路——考级题目003

按键精灵进阶之路——考级题目003

作者头像
Ed_Frey
发布2023-08-28 15:22:22
2600
发布2023-08-28 15:22:22
举报
文章被收录于专栏:奔跑的键盘侠奔跑的键盘侠

这是奔跑的键盘侠的第201篇文章

作者|我是奔跑的键盘侠

来源|奔跑的键盘侠(ID:runningkeyboardhero)

转载请联系授权

题目003:生成0-1之间的随机小数,不能用自带的随机数函数,不能有明显的规律。

关于随机数,其实应用十分广泛,有时候可能都没意识到,突然就进坑了

1

随机数的经典应用场景

随机数在编程方面拥有大量应用,以下是一些较为经典的应用:

  1. 模拟游戏。在游戏编程中,随机数广泛用于模拟各种随机事件,例如卡牌游戏中抽卡、角色死亡概率等。
  2. 数据加密。随机数可以被用于生成加密密钥,提高数据安全性,例如密码学中的随机数生成器。
  3. 随机图像生成。随机数可以被用于随机生成艺术作品、图像或音频,这在各种创作领域中都有应用,例如计算机艺术、音乐等。
  4. 统计学。随机数在统计学中扮演着重要角色,例如蒙特卡罗模拟,其中随机数被用于生成随机样本,来模拟各种复杂的现象和问题。
  5. 自适应算法。自适应算法通常使用随机数来对可变参数进行调整,如人工神经网络和遗传算法等。

2

代码赏析

思路一:基于时间戳生成随机数

按键精灵语言内置函数 GetTime() 可以返回当前时间的毫秒数,我们可以利用该函数生成随机数。

代码语言:javascript
复制
rand = GetTime() % 100

没错,就一行,大道至简。上述代码中,将当前时间的毫秒数对 100 取模,可得到一个介于 0~99 之间的随机数。但是,这种方法的缺点是在同一毫秒内可能生成相同的随机数,因此随机性较差。

思路二:基于数组随机访问生成随机数

我们可以预定义一个数组,然后利用随机数选择数组中的元素作为生成的随机数。

代码语言:javascript
复制
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

奔跑的键盘侠原创作品 | 尽情分享朋友圈 | 转载请联系授权

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-06-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 奔跑的键盘侠 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档