首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生命、宇宙和一切的答案

生命、宇宙和一切的答案
EN

Code Golf用户
提问于 2014-02-04 21:01:42
回答 16查看 9.9K关注 0票数 42

引言:深思计算出宇宙万物生命的答案,在750万年的时间里,解决方案是42

用任何一种编程语言编写一个程序,计算大约需要75秒,从任何您想要的开始,然后输出数字42

注:必须以某种方式计算数字42 (任意随机数),而不只是在脚本中进行硬编码。

正如建议的那样,您不能使用sleep或等效函数。要有创造性。

EN

回答 16

Code Golf用户

发布于 2014-02-05 00:36:11

这在覆盆子圆周率超过1 1GHz的情况下大约需要75秒。

代码语言:javascript
复制
#!/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

票数 54
EN

Code Golf用户

发布于 2014-02-04 21:35:07

DOS批处理--生命、宇宙和一切的答案--

感谢我的爱,感谢他的简单化!

另存为answer.bat

代码语言:javascript
复制
@ ping 127.0.0.1 -n 76 >nul && @ echo %~z0

然后运行它,等待75秒钟:

代码语言:javascript
复制
> answer
42
票数 13
EN

Code Golf用户

发布于 2014-02-05 08:38:12

MATLAB

这是一次艰难的考验。因为我们并不真正知道这个问题,唯一可行的方法就是通过一种全局优化的方法来得到答案。在这种情况下,我选择了模拟退火方法,因为这个方法以前给了我很好的答案。

所有这些代码所做的是寻找一个函数的最优值,输入是生命本身。令人惊奇的是,它起作用了。所以,我刚刚证实了深层思想吗?

代码语言:javascript
复制
tic;

the_answer=round(simulannealbnd(@(life)abs(3.7376696-log(life)),140489, ...
           -inf,inf,saoptimset('MaxFunEvals',10^16)))
toc;

输出:

代码语言:javascript
复制
the_answer =

    42

Elapsed time is 74.892428 seconds.
票数 10
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/20034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档