zoukankan      html  css  js  c++  java
  • 有意思的随机数 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内部算法有关系。在此埋一个坑,等调查清楚会再次更新

  • 相关阅读:
    Linux从入门到入门到入门(一)
    计算机网络学习笔记
    计算机网络学习笔记
    c语言数据结构学习心得——排序
    c语言数据结构学习心得——查找
    adb 命令小结
    软件测试之面试题分享
    关于app启动时间测试的小思考
    软件缺陷
    黑盒测试,白盒测试
  • 原文地址:https://www.cnblogs.com/djoel/p/5750922.html
Copyright © 2011-2022 走看看