关于2014的最大算式

2014-02-01

除夕晚上,我们在某个来往的扎堆群里出了一道关于2014的趣味数学题,题目是这样的:

请使用2、0、1、4四个数字加上运算符,构造一个算式,使其计算结果尽可能大。数字的顺序可以随意调换,可以使用括号,但不能使用阶乘等单目运算。

题目很简单,比如 2 + 0 + 1 + 4 就是一个可能的解答。不过,这个算式的结果显然太小了。

另外还有一个要注意的是,我们要使用常用的或大家公认的运算符,不能使用偏门的或自定义运算符,不然的话就会有问题。

比如,如果我定义一个运算符“#”,让 a#b 的结果是一个巨大的数字,这样显然可以得到很大的结果,但别人也可以定义更大的运算符,这样的比较恐怕永远不会有结果出来。

同时,我们把阶乘运算(n!)也禁止了,因为这种单目运算可以重复使用,比如:

4210!!!!!!!...

当然,我们可以禁用连阶乘,不过简单起见,我们直接把整个阶乘都禁用了。

传统解

扎堆里很快有人给出了答案:

2^(4^10)

这儿的 ^ 表示乘方运算。

如果只能使用加、减、乘、除、乘方、开方等传统运算符,这大概是能得到的最大算式了,它相当于 2^1048576,如果把结果写出来,会是一个长达 31 万位的数字。

使用位运算后的解

不过,既然扎堆中基本都是程序员,大家自然把位运算也用上了。位运算对程序员来说也是一种常见的公认的运算。

位运算中,我们加了一个假设:左移运算(<<)时可以不考虑溢出。在一些编程语言(比如Python)中,的确有这样的特性,只要内存足够,左移永远不会溢出。

如果加上了位运算,注意到左移一位相当于乘以 2,于是我们有了更大的算式:

1<<(2<<40)

这个算式相当于 2^2199023255551 ,一个大得惊人的数字。

更多

除了上面的解答,还有不少同学给出了各种有趣的解法。比如:

421/0

这个算式中直接将 0 作为除数,得到的结果可以认为是无穷大,某种程度上说可以秒杀所有其他回答。不过让一个数除以 0 还是比较怪异,这种方案最终被否决了。

另外还有一些方案用到了位运算中的取反操作,比如:

2^(40^~1)

根据CPU的不同,~1 得到的结果也不同,但总之会是一个很大的数字。不过,这种方案的值取决于硬件,多少有一些遗憾。

除了取反外,也有同学使用无符号右移来得到一个大数,比如:

4^((0-1)>>>2)

这个方案也很有创意,但结果同样也取决于硬件。

小结

最终我们认为的最佳方案是:

1<<(2<<40)

你有没有更好的方案呢?

分类: 文章 标签: 数学
前一篇: 当你被人拒绝的时候
后一篇: IE中使用location.href跳转丢失referrer的问题

相关文章:

评论:

MatheMatrix
在 2014-02-03 22:00 写道:

老杰把 RSS Feed 取了?
feed 访问不了啦……
看 HTTP 响应返回301 Moved Permanently。

完整:
curl -I oldj.net/feed
HTTP/1.1 301 Moved Permanently
Date: Mon, 03 Feb 2014 13:57:46 GMT
Server: Apache/2.2.14 (Ubuntu)
X-Powered-By: PHP/5.3.2-1ubuntu4.22
X-Pingback: http://oldj.net/xmlrpc.php
Last-Modified: Sat, 01 Feb 2014 08:01:28 GMT
ETag: "2e5792432393f9ef8ba0d374ef85b2e2"
Location: http://oldj.net/feed/
Cache-Control: max-age=300
Expires: Mon, 03 Feb 2014 14:02:46 GMT
Vary: Accept-Encoding
Content-Type: text/html

回复
oldj
在 2014-02-05 21:20 写道:

没有取消呢,末尾要加一个“/”,访问地址是 http://oldj.net/feed/ 。

curl -I oldj.net/feed/
HTTP/1.1 200 OK
Date: Wed, 05 Feb 2014 13:18:50 GMT
Server: Apache/2.2.14 (Ubuntu)
X-Powered-By: PHP/5.3.2-1ubuntu4.22
X-Pingback: http://oldj.net/xmlrpc.php
Last-Modified: Sat, 01 Feb 2014 08:01:28 GMT
ETag: "2e5792432393f9ef8ba0d374ef85b2e2"
Cache-Control: max-age=300
Expires: Wed, 05 Feb 2014 13:23:50 GMT
Vary: Accept-Encoding
Content-Type: text/html

回复

发表评论:

电子邮件地址不会被公开。 必填项已用 * 标注。