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

简介: 下面是一段随机数程序。public static void main(String[] args) { System.out.println(randomString(-229985452) + " " + randomString(-147...

下面是一段随机数程序。

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的随机数:

8
5
12
12
15

Random r = new Random(-147909649)

会产生以下5位不为0的随机数:

23
15
18
12
4

程序里面用`符号相加,`代表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

一段很简单的程序却如此神奇,分享给别人,看他知道不?

推荐阅读


阿里高级Java面试题(首发,70道,带详细答案)

2017派卧底去阿里、京东、美团、滴滴带回来的面试题及答案

Spring面试题(70道,史上最全)

17张图揭密支付宝系统架构

阿里巴巴,排行前10的开源项目!

2018年必看:关于区块链技术的10本书

分享Java干货,高并发编程,热门技术教程,微服务及分布式技术,架构设计,区块链技术,人工智能,大数据,Java面试题,以及前沿热门资讯等。


扫我关注
相关文章
打印
4.6 打印 4.6.1 分页符的插入及删除 1、插入水平分页符 选定要插入分页符位置的下一行,在“页面布局”选项卡的“页面设置”组单击“分隔符”,在出现的下拉列表中选择”插入分页符”命令 2、插入垂直分页符 选定要插入分页符位置的右侧列,在“页面布局”选项卡的“页面设置”组单击“分隔符”,在出现的下拉列表中选择”插入分页符”命令。 3、同时插入水平、垂直分页符 选定某单元格,在“页面布局”选项卡的“页面设置”组单击“分隔符”,在出现的下拉列表中选择“插入分页符”命令此时会在该单元格左边框和上边框位置同时插入水平、垂直分页符。 4、删除手动分页符 先选择紧邻水平分页符的下面行 (或该行
|
11月前
|
C语言 C++
C++打印hello world
C++打印hello world
142 0
|
Python
笨办法学 Python--跟书练习九~打印 打印 打印
笨办法学 Python--跟书练习九~打印 打印 打印
笨办法学 Python--跟书练习九~打印 打印 打印
print 方法输出
print 方法输出
106 0
print 方法输出
|
Serverless C语言 C++
第一个函数:Hello World (上)
实现一个Hello World是入门各个编程语言的第一节课,无论是我们学习C语言,C++,Python等,貌似都离不开一个Hello World,既然如此,本章将会基于Serverless架构,在主流的云厂商的FaaS平台实现一个Hello World。
94 0
|
Serverless 测试技术 文件存储
第一个函数:Hello World (下)
但我们注册并登陆我们的阿里云账号之后,我们可以找到函数计算产品:
77 0
复习C部分://1.练习:打印1000~2000的闰年 //2.写一个代码,打印100~200之间的素数 3.goto 跳去哪里
复习C部分://1.练习:打印1000~2000的闰年 //2.写一个代码,打印100~200之间的素数 3.goto 跳去哪里
65 0
复习C部分://1.练习:打印1000~2000的闰年 //2.写一个代码,打印100~200之间的素数 3.goto 跳去哪里
L1-001 Hello World (5 分)
L1-001 Hello World (5 分)
37 0
|
Python
3. 第一个程序Hello, World!
本项目所有代码均可在github上下载。
3. 第一个程序Hello, World!

热门文章

最新文章