java:竟然有会生成固定文字“hello world”的随机数
来源:互联网 发布:正交矩阵的行列式 编辑:程序博客网 时间:2024/06/18 08:32
下面代码随机生成的文字竟然是固定内容的”hello world”。
System.out.println(randomString(-229985452) + " " + randomString(-147909649));public static String randomString(int i){ Random ran = new Random(i); StringBuilder sb = new StringBuilder(); while (true) { int k = ran.nextInt(27); if (k == 0) break; sb.append((char)('`' + k)); } return sb.toString();}
看到这个是不是很震惊,原因其实很简单。
在JAVA里面,随机类的实现并不是真正的随机,是伪随机。也就是说如果随机类的种子是一样的话,他们会生成同一组的数字。
比如说下面这俩个随机种子:
new Random(-229985452).nextInt(27)
首6个生成的数字一定是:
8、5、12、12、15、0
而 new Random(-147909649).nextInt(27)
首6个生成的数字一定是:
23、15、18、12、4、0
而把每一个数目字加 ` (which is 96),就会得到了相应的英文字母:
8 + 96 = 104 –> h
5 + 96 = 101 –> e
12 + 96 = 108 –> l
12 + 96 = 108 –> l
15 + 96 = 111 –> o
23 + 96 = 119 –> w
15 + 96 = 111 –> o
18 + 96 = 114 –> r
12 + 96 = 108 –> l
4 + 96 = 100 –> d
所以,hello word 因此而来。
阅读全文
2 0
- java:竟然有会生成固定文字“hello world”的随机数
- 生成固定范围内的随机数
- 生成固定位数的随机数
- JAVA 的HELLO WORLD
- JAVA的Hello World
- java随机数生成(固定位数)
- Mysql 生成固定位数的随机数
- 第一个Python程序的Hello Python,竟然有问题
- java的hello world出错
- 我的JAVA"Hello World"
- JAVA的Hello World程序
- Android左边有固定文字的EditText
- 百度和GOOGLE竟然会有这样的差别.......
- 哈哈,我的博客竟然会有粉丝
- java随机数的生成
- java 随机数的生成
- Java随机数的生成
- java 生成随机数的
- Torch的函数
- 让自己的电脑变成网站服务器(亲测成功)
- HDU 5773 The All-purpose Zero【LIS变形】
- Android事件分发
- Android 下拉刷新库,这一个就够了!
- java:竟然有会生成固定文字“hello world”的随机数
- 初始化mysql数据库提示缺少Data:dumper模块解决方法
- 如何获取 docker 容器(container)的 ip 地址
- 我的第一篇博客
- Java垃圾回收机制
- scp指令和ssh指令
- 特征工程(如何合理地把非数值特征转换成数值特征)
- 我的Linux 学习之路
- vue表单提交