Crane
Table_bottom

Search
Loading
Table_bottom

分类
Table_bottom

随机文章
Table_bottom

标签云
Table_bottom

最新评论
Table_bottom

链接
Table_bottom

功能
Table_bottom

那些优雅的代码

Crane posted @ 2013年3月24日 04:53 in Linux with tags code program , 6160 阅读

在Quora上看到一个问题,你见到的最优雅的代码是什么(http://www.quora.com/Elegant-Code/What-is-the-most-elegant-line-of-code-youve-seen),觉得挺有意思的,整理一下。

注:以下代码可能是各种五花八门的语言,但是关键不在语法,在语义,只要能明白意思就行了。

function gcd(a, b) { return b ? gcd(b, a % b) : a; }
while(a%=b^=a^=b^=a);
辗转相除法计算最大公约数,辗转相除法见这里(http://en.wikipedia.org/wiki/Binary_GCD_algorithm),wikipedia上更有各种版本的实现,递归的,效率高的。

main() {
  char c = getchar();
  (c == '+' || c == '-' || c == '*' || c == '/') ? main(), main() : 0;
  putchar(c);
}
前缀表达式转换成后缀表达式,概念参见这里这里

A=A+B-(B=A)
交换A和B的值,C语言才需要这样的技巧,python最直白,a, b = b, a


return (!(x & (x-1)));
判断x是否为2的幂数,位运算的技巧

for( c = 0; v; c++) v &= (v - 1);
计算hamming weight(wiki),二进制表示中有多少个1。之前也有一篇文章说这个,这里

while(*s++ = *t++);
拷贝字符串

:(){:|:&};:
bash 炸弹,定义了一个函数,名字就是冒号,这个函数会不断的fork自己,导致资源用完,系统挂掉

while( x --> 0){
//...
}
这个有趣,x --> 0,有种x趋近于0的错觉

float FastInvSqrt(float x) {
  float xhalf = 0.5f * x;
  int i = *(int*)&x;          // evil floating point bit level hacking
  i = 0x5f3759df - (i >> 1);  // what the fuck?
  x = *(float*)&i;
  x = x*(1.5f-(xhalf*x*x));
  return x;
}
有名的quake源码中的计算根号分之一的快速算法,原理是牛顿迭代法,神奇的是what the fuck那一行,选用了一个异常接近正常答案的值,使得只需要一次迭代就得到了答案。wiki有解释,http://en.wikipedia.org/wiki/Fast_inverse_square_root

def r(a):i=a.find('0');~i or exit(a);[min[(i-j)%9*(i/9^j/9)*(i/27^j/27|i%9/3^j%9/3)or a[j]for
j in range(81)]or r(a[:i]+m+a[i+1:])for m in'%d'%5**18]
from sys import*;r(argv[1])
一行代码解数读,递归算法

这个python要写得再pythonic一些才优雅。

看了一会,有些代码就是trick并不优雅,还是就到这里吧!
 

Avatar_small
依云 说:
2013年3月24日 17:06

看到标题我想进来看看。看到正文我想还是算了。优雅的代码的前提是具有优雅的排版。


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter