• 有意思的随机数 Random


        今天看到stackoverflow上一篇关于随机数的提问,关于如何用随机数生成 "hello world"的有趣问题 : 

        大家都知道JDK里面的Random类生成随机数其实并不是真正意义上的随机数,而是伪随机(pseudorandom)。Random生成随机数时需要一个随机种子(seed),不管Random对象是否相同,只要随机种子相同,生成的随机数是来自同一个列表的。

        比如随机种子为 -229985452 ,那么生成的随机数列表应该是 :

                        8, 5, 12, 12, 15, 0, 4, 21, 9, 2, 19, 1, 14, 25, 20, 6, 23, 19, 2, 23, 20, 23, 20 ...... 

        对应的字符列表应该是 : 

                        hello`duibsanytfwsbwtwtffwdbrxbogptpcvhhxd`troxqamrjbsegsyalqjmdxkwzbf

        随机种子为 -147909649 ,那么生成的随机数列表应该是 : 

                        23, 15, 18, 12, 4, 0, 16, 6, 5, 25, 19, 11, 0, 14, 16, 11, 1, 24, 14, 2, 1, 17, 23 ......

        对应的字符列表应该是 : 

                        world`pfeysk`npkaxnbaqwhmkmauuyhvxptcjidgthgdwjsfyiiarupbfupjcb`ajkr`mb

        也就是说 : 写出这代码的人已经知道这俩随机种子生成的前几个数字对应字符hello world ,所以他用这两个随机种子生成了hello world。那么问题来了,究竟如何得到指定字符集对应的随机数呢?例如如果生成hello man又对应什么样的随机种子呢?这个应该和Random内部算法有关系。在此埋一个坑,等调查清楚会再次更新

  • 相关阅读:
    企业网盘针对文件权限管理的技术实现
    学校私有云盘在学校信息化建设中的作用-教学资源库平台
    Mobox 知识管理平台助推市长质量奖
    为勇敢的华裔女子点赞
    一群喵星人把他家包围了。。
    【OI】简单的分块
    【OI】Kruskal & ufs (克鲁斯卡与并查集)
    【OI】向量&矩阵乘法
    【OI】同余方程
    【Ubuntu】某灯图标过大
  • 原文地址:https://www.cnblogs.com/djoel/p/5750922.html
Copyright © 2020-2023  润新知