11

那些只有几行,但是却非常牛逼的代码!

 4 years ago
source link: http://mp.weixin.qq.com/s?__biz=MzU5ODUwNzY1Nw%3D%3D&%3Bmid=2247485320&%3Bidx=1&%3Bsn=f6239fc38ebc952d268125f57ec28480
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

无扩展,不MacBook!!!

Fbi6Vj2.jpg!web

原文地址:https://www.toutiao.com/i6800262027450253836/

1、no code

项目地址:

https://github.com/kelseyhightower/nocode

这是一个 GitHub 上的项目,目前标星 34k。

它的牛逼之处在于它 基于轻量级跨平台全自动不可描述工具 ,采用了 不可描述 的高级语言语法, 不用写一行代码 ,即可 部署运行,提供检测、编译、打包、安装、运行 一条龙服务,安全可靠。

看完代码后,国内外的程序员纷纷留言夸奖。

ZbyMJrZ.jpg!web

真的是阅尽天下代码,心中已然无码!

2、洗牌算法

这个代码很简单,只有两行代码,但是却可以实现这个功能: 对于给定的 n 个元素,生成的那个排列,每一个元素都能等概率地出现在每一个位置。

换句话说,每一个位置都能等概率地放置每个元素。

代码如下(JDK中Collections.shuffle()也是这样实现的):

for(int i = n - 1; i >= 0 ; i -- )
    // rand(0, i) 生成 [0, i] 之间的随机整数
    swap(arr[i], arr[rand(0, i)]) 

3、睡眠排序

代码如下:

public class SleepSort {  
public static void main(String[] args) {
int[] ints = {1,4,7,3,8,9,2,6,5};
SortThread[] sortThreads = new SortThread[ints.length];
for (int i = 0; i < sortThreads.length; i++) {
sortThreads[i] = new SortThread(ints[i]);
}
for (int i = 0; i < sortThreads.length; i++) {
sortThreads[i].start();
}
}
}
class SortThread extends Thread{
int ms = 0;
public SortThread(int ms){
this.ms = ms;
}
public void run(){
try {
sleep(ms*10+10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(ms);
}
}

它原理是构造 n 个线程,它们和这 n 个数一一对应。

初始化后,线程们开始睡眠,等到对应的数那么多个时间单位后各自醒来,然后输出它对应的数。

这样最小的数对应的线程最早醒来,这个数最早被输出。

等所有线程都醒来,排序就结束了。

不要问时间复杂度,时间复杂度在这个排序上已经毫无意义!

4、AI核心代码

while True:
print(input('').replace('吗','').replace('?','!'))

这段代码就是传说中的 价值一个亿的AI核心代码,来看一下效果。

UN3iAzU.jpg!web

5、获取第二天时间

代码如下:

// 人才人才
thread.sleep(86400*1000L);

5、0x5f375a86

这个数字有多神奇?你可以自己百度一下!

这个数字是某引擎的源代码里包括的一个 反平方倒数的算法 ,其速度要比标准的牛顿迭代法快上 4 倍,而其中的关键是一行神秘的代码和一个莫名其妙的数字:[ i = 0x5f3759df - ( i >> 1 ) ; // what the fuck? ] 。代码如下:

biyAVnV.png!web

没有人知道Carmack是怎么发现这个数字的。普度大学的数学家Lomont觉得很好玩,决定要研究一下卡马克弄出来的这个猜测值有什么奥秘。Lomont也是个牛人,在精心研究之后从理论上也推导出一个最佳猜测值,和卡马克的数字非常接近, 0x5f37642f。卡马克真牛,他是外星人吗?

传奇并没有在这里结束。Lomont计算出结果以后非常满意,于是拿自己计算出的起始值和卡马克的神秘数字做比赛,看看谁的数字能够更快更精确的求得平方根。结果是卡马克赢了... 谁也不知道卡马克是怎么找到这个数字的。最后Lomont怒了,采用暴力方法一个数字一个数字试过来,终于找到一个比卡马克数字要好上那么一丁点的数字,虽然实际上这两个数字所产生的结果非常近似,这个暴力得出的数字是 0x5f375a86

Lomont为此写下一篇论文,"Fast Inverse Square Root"。

6、hello world

嗯,这个一定要写上。不管你学的是什么语言,都肯定写过hello world的!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK