JetBrains Quest 到底是什么?
JetBrains 有很多开发人员,其中很多人都喜欢玩游戏 – 具有挑战性的游戏。
我们提出了创建寻宝游戏的想法:每个谜题的解决方案都是下一个谜题的提示。我们将所有的谜题彩蛋隐藏于 JetBrains 的各种地方。
经过长时间的集思广益,JetBrains Quest 诞生了。
JetBrains Quest 是一系列谜题,遍布所有不同的 JetBrains 页面和产品。游戏包含 3 个任务,每个任务有 4 – 6 个谜题可解决。第一个任务相对容易,使人们有机会弄清楚要期望什么。随着前进,难度也增加了。
Quest 于 3 月 9 日在我们的社交媒体(Twitter、Facebook 、 Linkedin 还有微博)上发布了一条帖子,并于 3 月 15 日欧洲中部时间结束。
至此,所有谜题都已移除。
社区的反应实在太棒了!
有人绞尽脑汁。
大家开始要求更多。
根据评论,似乎最难解决的谜题是斐波那契(Fibonacci)练习。这个谜题隐藏在特定版本的 IntelliJ IDEA Community 的“每日技巧”中。
就是这个。
如果您尝试使用线性方法来解决问题,则将需要数小时甚至数天才能得到答案。
解决这个谜题有两种主要方法。
最简单的方法是使用 Wolfram|Alpha 来获取前和后四位数字。
第二种方法比较困难,但是它有一个好处:更大的成就感!有一些算法可以使计算斐波那契数列的速度更快。我们希望您实施这些选项之一。
下面是一个示例:
import math def last_fib_digits(fib_number, last_digits): prev, cur = 0, 1 q = 10 ** last_digits while fib_number > 0: prev, cur = cur, prev + cur fib_number -= 1 cur %= q return prev def first_fib_digits(fib_number): phi = (math.pow(5.0, 0.5) + 1) / 2 logF = fib_number * math.log10(phi) – 0.5 * math.log10(5.0) return math.pow(10.0, logF – int(logF)) print(last_fib_digits(50000000, 4)) print(first_fib_digits(50000000))
前 4 位数字:4602
后 4 位数字:3125
对于那些未能完成 Quest 的人,您可以在此处查看所有谜题及其解决方案。
我们要感谢参加我们的 JetBrains Quest 的所有人。在下面留下评论,让我们知道哪个谜题是您的最爱。
感谢您的加入! 愿您一生都有冒险!
– JetBrains Quest 团队