神奇,教你用随机数打印hello world
来源:互联网 发布:ms8.0 linux安装教程 编辑:程序博客网 时间:2024/05/22 00:54
下面是一段随机数程序。
public static void main(String[] args) { System.out.println(randomString(-229985452) + " " + randomString(-147909649));}public static String randomString(int seed) { Random ran = new Random(seed); StringBuilder sb = new StringBuilder(); while (true) { int k = ran.nextInt(27); if (k == 0) { break; } sb.append((char) ('`' + k)); } return sb.toString();}
每次都会输出:hello world,这是为什么呢??
Random构造函数,参数seed是初始种子,相同的种子每次产生的随机数都一样,所以无论怎么随机,构造出来的随机数都一样。
Random r = new Random(-229985452)
会产生以下5位不为0的随机数:
85121215
Random r = new Random(-147909649)
会产生以下5位不为0的随机数:
231518124
程序里面用`符号相加,`代表96.
所以,有下面的结果:
8 + 96 = 104 --> h5 + 96 = 101 --> e12 + 96 = 108 --> l12 + 96 = 108 --> l15 + 96 = 111 --> o23 + 96 = 119 --> w15 + 96 = 111 --> o18 + 96 = 114 --> r12 + 96 = 108 --> l4 + 96 = 100 --> d
一段很简单的程序却如此神奇,分享给别人,看他知道不?
推荐阅读
阿里高级Java面试题(首发,70道,带详细答案)
2017派卧底去阿里、京东、美团、滴滴带回来的面试题及答案
Spring面试题(70道,史上最全)
17张图揭密支付宝系统架构
阿里巴巴,排行前10的开源项目!
2018年必看:关于区块链技术的10本书
分享Java干货,高并发编程,热门技术教程,微服务及分布式技术,架构设计,区块链技术,人工智能,大数据,Java面试题,以及前沿热门资讯等。
阅读全文
0 0
- 神奇,教你用随机数打印hello world
- 神奇的hello world
- java打印 Hello World!
- 打印 Hello World!
- 打印Hello World
- 又见"神奇"的Hello World
- mips汇编打印 hello world
- 打印Hello World,填空题
- 宏定义打印Hello World
- 使用C++打印hello world
- 多种语言打印Hello World
- 菜鸟在线教你用Unity3D开发VR版的Hello World
- 教你完成最简单的linux驱动 hello world
- 不使用main方法打印Hello World
- 打印hello world我第一次见
- 在Linux下打印出Hello World!
- MIPS汇编指令打印hello world
- HDU3257 Hello World!【打印图案+位运算】
- JAVA IO源码学习系列之ByteArrayInputStream
- 阿里巴巴,排行前10的开源项目!
- 2017最流行的IDE之争,Eclipse夺冠
- angularjs遍历集合添加值表格进行删除
- Java多线程神器:join使用及原理
- 神奇,教你用随机数打印hello world
- Java管理Cookie增删改查操作。
- Java多线程sleep和wait的区别,总结得非常好。
- jps命令:查看Java进程等详细信息
- jstack命令:教你如何排查多线程问题
- 并查集初阶1 小希的迷宫
- jmap, jhat, jvisualvm:java堆内存对象分析利器
- 腾讯,排行前10的开源项目
- 【推荐】大众点评Java开发实时应用监控平台-CAT