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内部算法有关系。在此埋一个坑,等调查清楚会再次更新

  • 相关阅读:
    关于slmgr命令
    .msi安装包安装方法(安装错误2503和2502)
    BIOS相关
    C和C#的区别
    关于del命令
    win8快捷键
    Windows 8 系统快捷键热键列表收集
    Android开发环境搭建
    关于Android sdkmanager目录结构的总结
    关于eclipse新建项目问题
  • 原文地址:https://www.cnblogs.com/djoel/p/5750922.html
Copyright © 2011-2022 走看看