• 近期将进行后台系统升级,如有访问不畅,请稍后再试!
  • 极客文库-知识库上线!
  • 极客文库小编@勤劳的小蚂蚁,为您推荐每日资讯,欢迎关注!
  • 每日更新优质编程文章!
  • 更多功能模块开发中。。。

神奇,教你用随机数打印hello world


下面是一段随机数程序。
  1. publicstaticvoid main(String[] args){
  2.    System.out.println(randomString(-229985452)+" "+ randomString(-147909649));
  3. }
  4. publicstaticString randomString(int seed){
  5.    Random ran =newRandom(seed);
  6.    StringBuilder sb =newStringBuilder();
  7.    while(true){
  8.        int k = ran.nextInt(27);
  9.        if(k ==0){
  10.            break;
  11.        }
  12.        sb.append((char)('`'+ k));
  13.    }
  14.    return sb.toString();
  15. }
每次都会输出:hello world,这是为什么呢??
Random 构造函数,参数 seed 是初始种子,相同的种子每次产生的随机数都一样,所以无论怎么随机,构造出来的随机数都一样。
Random r = new Random(-229985452)
会产生以下 5 位不为 0 的随机数:
  1. 8
  2. 5
  3. 12
  4. 12
  5. 15
Random r = new Random(-147909649)
会产生以下 5 位不为 0 的随机数:
  1. 23
  2. 15
  3. 18
  4. 12
  5. 4
程序里面用`符号相加,`代表 96.
所以,有下面的结果:
  1. 8  +96=104--> h
  2. 5  +96=101--> e
  3. 12+96=108--> l
  4. 12+96=108--> l
  5. 15+96=111--> o
  6. 23+96=119--> w
  7. 15+96=111--> o
  8. 18+96=114--> r
  9. 12+96=108--> l
  10. 4  +96=100--> d
一段很简单的程序却如此神奇,分享给别人,看他知道不?


丨极客文库, 版权所有丨如未注明 , 均为原创丨
本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
转载请注明原文链接:神奇,教你用随机数打印 hello world
喜欢 (0)
[247507792@qq.com]
分享 (0)
勤劳的小蚂蚁
关于作者:
温馨提示:本文来源于网络,转载文章皆标明了出处,如果您发现侵权文章,请及时向站长反馈删除。

欢迎 注册账号 登录 发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00