Browsed by
作者: 陈皓

芝兰生于深谷,不以无人而不芳 君子修身养德,不以穷困而改志
PI小数点位数的新纪录

PI小数点位数的新纪录

PI小数点后的位数据个数据的纪录被刷新了,被一台PC机刷新的。新的纪录把PI的小点数后面的位数整到了近2.7万亿位,太BT了。下面的链接是本次经录的通告:

http://bellard.org/pi/pi2700e9/announce.html

这个通告宣称:

  • PI后的小数点位数被计算到了2,699,999,990,000位。
  • 为了保存计算结果,一共花了,1137GB的硬盘空间。
  • 本次计算使用了价值2000欧元左右的PC机,CPU是Core i7 CPU at 2.93 GHz ,内存6GB,5个1.5TB的希捷硬盘。
  • 操作系统使用的是Linux  64 bit Red Hat Fedora 10 distribution,7.5TB的硬盘被做成了RAID-0阵列,使用了ext4文件系统。
  • 整个计算时间花了131天(4个半月),其中,103天用于计算PI的二进制结果,13天用于验证二进制结果,花了12天把二进制转成十进制,最后花了3天再验证了转换。
  • 上一次的记录是2.577 万亿小数位,于2009年8月17日创造。其使用了超过百万欧元的超级计算机(Appro Xtreme-X3 Server)。

相关的技术细节请看这里:http://bellard.org/pi/pi2700e9/pipcrecord.pdf

我想了想,算这个玩意花了多少度电,产生了多少废气,太不环保了。呵呵。

好烂啊有点差凑合看看还不错很精彩 (8 人打了分,平均分: 3.75 )
Loading...
2010 = 1+2-(3-4-5)*6*7*8-9

2010 = 1+2-(3-4-5)*6*7*8-9

 这是一个数字游戏,使用123456789,并按照123456789的顺序,使用加减乘除以及括号,进行操作使其结果等于2010(原来的游戏是使其值为100,请看这里),那么会有多少种解法呢?下面是924种解法,其让我想起了“24点游戏”。

这里,如果让你写一段程序来生成所有的可能,你知道怎么写这段程序吗?

使用单个数

2010 = 1+2-(3-4-5)*6*7*8-9
2010 = 1-(2+(3-4-5)*6*7)*8+9
2010 = 1+2+(3+4*(5+6*7+8))*9
2010 = 1+2*(3*4*(5+6)-7)*8+9
2010 = 1*2*3*(4*(5*6+7*8)-9)
2010 = 1+2+(3+4*(5-6+7*8))*9
2010 = (1-2-3+4*(5/6+7*8))*9
2010 = (1+2+3*4)*(5-6+(7+8)*9)
2010 = 1+2+((3*(4+5)+6)*7-8)*9
2010 = (1+2+3)*(4*(5*6+7*8)-9)
2010 = 1+2+3*(4*(5+6)*(7+8)+9)
2010 = (1*2/3)*((4+5)*6*7*8-9)
2010 = (1-2-3)*((4+5)/6-7*8*9)
2010 = (1*2+(3-4*(5/6-7))*8)*9
2010 = 1*(2+(3-4*(5/6-7))*8)*9
2010 = (1+2*(3+4))*(5-6+(7+8)*9)

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (17 人打了分,平均分: 3.71 )
Loading...
程序命名的一些提示

程序命名的一些提示

选择一个正确的名字是编程中最重要的事。以前酷壳向大家推荐过两篇文章《编程命名中的7+1个提示》 和《编程中的命名设计那点事》,今天再向大家推荐一篇。一个正确的命名可以让你更容易地理解代码的程序,好的命名可以消除二义性,消除误解,并且说明真实的意图,甚至可以让你有清新的气息以让你更能吸引异性。;-)

方法,类和变量

正确的名字可以让你的程序顾名思义,下面是一些提示:
  • 不要使用”ProcessData()“这样的命名
    你如果在你的程序生涯中使用这样的函数名,那么这意味着你将是一个不合格的程序员而会被淘汰或解雇。请明确实际的功能。比如:ValidateUserLogin(验证用户登录) 或 EliminateDuplicateRequests(去除重复请求) 或 ComputeAverageAge(计算平均年龄),等等。
  • 让命名来帮你设计程序
    让我们假装有这么一条规则是——“任何的函数是有输入/输出的”,那么,你需要思考的是所有的把input变成ouptut的步骤,然后,你可以选择一个简短的句了来说明你的这段程序,然后,把这个短句再精练一下,最终成为你的函数名,而那个短句则成了你程序的结构。

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (12 人打了分,平均分: 3.58 )
Loading...
粉丝眼中的操作系统

粉丝眼中的操作系统

在发布完《程序员眼中的编程语言》一文后,发现网上还有一个关于操作系统的。如下所示。

  • 图片的横轴是三大操作系统。
  • 纵轴是各操作系统的粉丝和信徒。
  • 中间的各个小图片则是,粉丝眼中的操作系统的形象。

关于操作系统,还有这一张图也很有意思。

粉丝眼中的操作系统

好烂啊有点差凑合看看还不错很精彩 (52 人打了分,平均分: 4.67 )
Loading...
程序员眼中的编程语言

程序员眼中的编程语言

下图是一个搞笑的图片——程序员眼中的编程语言。

  • 图片的横轴是编程语言。
  • 纵轴是各语言的程序员、粉丝、信徒。
  • 中间的各个小图片则是,粉丝眼中的编程语言的形象。

比如说,

  • 第一行第一列,是Java程序员看Java语言的样子,一幢现代化的大厦。
  • 第一行第二列,是Java程序员看C语言,一个年老过时的骨灰级老头。
  • 当然,C程序员看Java语言也比较搞,见第二行第一列。呵呵。

其它的大家自己看吧。还有另外一个关于操作系统的《粉丝眼中的操作系统

程序员眼中的编程语言

 

好烂啊有点差凑合看看还不错很精彩 (26 人打了分,平均分: 4.31 )
Loading...
C语言的演变史

C语言的演变史

1972 – C语言的先驱——B语言,被贝尔实验室开发。B语言是一个很快速的,容易维护的,而且对于从系统到应用开发是很好用的。设计这门语言的整个团队被马上解雇了,因为他们干了一件和电话通讯不相干的事情。最后这个项目转给了 Dennis Ritchie。他把这个语言变得不容易理解,很难维护,而且,只能用于系统方面的编程。而且,他还设计了一个指针系统,保让每一个程序都超过500行,并可以使用操作系统的指针。

1982 – 大家发现有97% 的C程序调用产生了“缓冲区溢出”问题。于是,C 程序员们开始意识到,就算是不必要也必需要初始化变量。然而,强制性的变量初始化这个明智的决定,很难影响了当时已经写成了的97%的C程序,所以结果什么也没有发生。 

1984 – 操作系统出现了“错误指针”的问题数量开始戏剧性地增涨。 

1985 – 一系列的让C语言有面向对象能力的解决方法出现了,一个叫“C With Classes”正准备商业化。然而,大家觉得名字“C With Classes”太清楚和容易被理解了,所以,最终的商业版本叫做—— C++。

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (19 人打了分,平均分: 3.63 )
Loading...
一个“精湛”的JS程序

一个“精湛”的JS程序

下面是一个很“精湛”的JS程序:

http://rmd.atdmt.com/tl/DocumentDotWrite.js

这个JS文件中“精湛”之处在于,其只有一行代码,如下所示:

function DocumentDotWrite(s){document.write(s);}

下面这个贴子讨论了这个JS文件:
http://forums.thedailywtf.com/forums/p/7872/147330.aspx

大家都在猜测为什么那个程序员要这么干,下面是一些猜测:

  1. 网友superjer说:这是一个伟大的创造,解决了你的键盘“.”键损坏的情况。
  2. 网友Heron说:这是从Character Map上拷贝粘贴下来的。
  3. 网友mfah说:这是世界上第一个用C来包装Javascript的示例。
  4. 网友djork说:我是一个用手机编程的人,这个方法可以让人在手机上更容易输入我的代码。
  5. 网友PSWorx说:可能他们想把document.write作为一个回调函数,但直接把document.write传进去不行。
  6. 还有一个网友说:这么做或者可以阻止网页上的广告阻截器。

呵呵,看来,“超级天才”和“极端愚蠢”可能只是一线之差,只有写这段程序的那个程序员才知道为什么要这么干了。也许,他的键盘的那个键真的是坏了也不一定。

好烂啊有点差凑合看看还不错很精彩 (12 人打了分,平均分: 3.83 )
Loading...
Java异常另类手册

Java异常另类手册

在这个页面上http://rymden.nu/exceptions.html,你会看到Java的各种异常,不过,你看看各个异常的解释,你会发现非常有趣,下面例举几个吧:

java.lang.ArithmeticException

你正在使用计算解决一个你不能自己解释的数学问题,请你重新读一下你的程序,然后,再试一次。

java.lang.ClassNotFoundException

你应该是发明创造了一个你自己的类,目前,Java中还没有实现“种姓制度”,但是Java明显使用了巴厘岛的种姓制度。也就是说,如果你是一个武士(wesia),也就相当于印度种姓制度中的第三层——吠舍(vaishya)

java.lang.IllegalAccessException

你是一个正在运行Java程序入室盗窃的小偷,请停止对电脑的盗窃行为,离开房子,然后再试一次。

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (9 人打了分,平均分: 3.67 )
Loading...