算法问题征解:怎样生成随机数而不借助任何工具?

当身边没有工具可用,如何生成一个小于10的随机自然数?本文提供了多种有趣的方法,如利用当前日期、憋气数数等,激发读者思考日常生活中的随机性。

    如果你身上没有任何可以使用的工具(手机、mp3、手表、尺子、纸和笔等等),也无法寻求别人的帮助,碰巧这时你突然急需获取一个小于10的随机自然数,你该怎么办?

    先抛砖引玉,说说我自己想到的一些办法:

  • 取当前年月日之和的个位数(理论上随机性不佳)
  • 憋住呼吸并循环慢念0到9这十个数,在吸下一口气之前看念到多少(潜意识会导致随机性不佳)
  • 拔10根头发,看第几根最长(可以边拔边比并不断更新最大值)
  • 回忆一下看有多少天没来那个了,取个位数(只适用于女性)
  • 看身上一共有多少块钱,取个位数
  • 完整地唱完一首歌,取歌词字数的个位数
  • 随意想一个英文单词,算出所有字母的ASCII码之和并模10

    你还能想到哪些有趣的算法?欢迎在下面留言讨论,我会把有意思的留言在这里更新出来。

参考资源链接:[分布估计算法:优缺点与进化模式解析](https://wenku.youkuaiyun.com/doc/tadcrck3hx?utm_source=wenku_answer2doc_content) 分布估计算法(EDA)在处理高维问题时通过建立概率模型来平衡探索与利用。概率模型能够表征解空间中个体的分布特性,通过学习当前种群的统计特性,EDA能够在全局范围内进行有效的探索,同时根据模型来指导搜索的方向,实现对特定区域的利用。相较于传统的遗传算法,EDA在时间复杂性上有明显优势,因为它避免了对个体逐一评估的过程。EDA通过模型采样来生成新的种群,这个过程的时间复杂度依赖于概率模型构建的速度以及采样的效率,而像遗传算法那样需要对种群中的每个个体进行适应度评估。具体来说,EDA的时间复杂性主要取决于模型的选择、参数估计方法以及模型复杂度,而遗传算法的时间复杂性则受交叉、变异操作的影响较大。在实际应用中,EDA适用于那些对时间复杂性要求较高的高维优化问题,例如机器学习中的特征选择、参数优化等,它能够在较少的时间内提供一个相对较好的解。然而,需要注意的是,EDA在理论研究上还存在一定的困难,尤其是在模型选择和参数调优方面,这需要研究者和工程师根据具体问题进行细致的调整和优化。如果您希望深入理解分布估计算法的理论基础和实际应用,推荐参考《分布估计算法:优缺点与进化模式解析》一书,它详细解析了EDA的理论基础和进化模式,为解决高维问题提供了宝贵的指导和参考。 参考资源链接:[分布估计算法:优缺点与进化模式解析](https://wenku.youkuaiyun.com/doc/tadcrck3hx?utm_source=wenku_answer2doc_content)
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值