引言:深思计算出宇宙万物生命的答案,在750万年的时间里,解决方案是42。
用任何一种编程语言编写一个程序,计算大约需要75秒,从任何您想要的开始,然后输出数字42。
注:必须以某种方式计算数字42 (任意随机数),而不只是在脚本中进行硬编码。
正如建议的那样,您不能使用sleep或等效函数。要有创造性。
发布于 2014-02-05 00:36:11
这在覆盆子圆周率超过1 1GHz的情况下大约需要75秒。
#!/usr/bin/env python
from itertools import product, count
for n in count(1):
i = 0
for a, b, c, d in product(range(n), repeat=4):
if a > b > c > d > 0 == (a*b-c*d)%n == (a*c-b*d)%n == (a*d-b*c)%n:
i += 1
if i == n:
break
print i它之所以有效,是因为:
42是唯一已知的值,即四个不同正整数a、b、c、d的集合数,每一个都小于值本身,因此ab-cd、ac-bd和ad-bc都是该值的倍数。是否有其他价值仍是一个悬而未决的问题。
http://www.mathpages.com/home/kmath255.htm
发布于 2014-02-04 21:35:07
感谢我的爱,感谢他的简单化!
另存为answer.bat:
@ ping 127.0.0.1 -n 76 >nul && @ echo %~z0然后运行它,等待75秒钟:
> answer
42发布于 2014-02-05 08:38:12
这是一次艰难的考验。因为我们并不真正知道这个问题,唯一可行的方法就是通过一种全局优化的方法来得到答案。在这种情况下,我选择了模拟退火方法,因为这个方法以前给了我很好的答案。
所有这些代码所做的是寻找一个函数的最优值,输入是生命本身。令人惊奇的是,它起作用了。所以,我刚刚证实了深层思想吗?
tic;
the_answer=round(simulannealbnd(@(life)abs(3.7376696-log(life)),140489, ...
-inf,inf,saoptimset('MaxFunEvals',10^16)))
toc;输出:
the_answer =
42
Elapsed time is 74.892428 seconds.https://codegolf.stackexchange.com/questions/20034
复制相似问题