Google对儿童编码的涂鸦:解决所有问题的最短程序


26

今天的Google Doodle是关于庆祝儿童编码50周年的:目标是编写一个小兔子的路径,以便它可以吃掉所有的胡萝卜。块有4种类型(请参见下图):

块描述

从左到右:

  • O("...", k)=橙色部分:这些是for执行k次程序的循环"..."
  • G =绿色部分:如果可以,请向前迈出一步,否则不执行任何操作
  • Bl =蓝片:右转并停留在同一街区
  • Br =蓝片:向左转并停留在同一街区

大程序

上面的代码可以写成

O(O(G G Br, 4) Bl Bl, 23)

每个块(G, Bl, Br, O(...,k))计为1单位,因此该程序的长度为7。请注意,的值k包含在的1单位内O

有6个级别。为了达到一个水平,你需要吃掉所有的胡萝卜。如果您的程序没有完全执行,这没问题,当您吃完最后的胡萝卜时,水平就直接结束了。

我们假设所有4种类型的块在每个级别均可用。

您的任务是找到一个可以解决游戏各个层面的程序。
块中最短的程序获胜。

每个级别的屏幕截图:
级别1: 级别2: 级别3: 级别4: 级别5: 级别6:1级屏幕截图
2级屏幕截图
3级屏幕截图
4级屏幕截图
5级屏幕截图
6级屏幕截图

Answers:


24

不是我的答案

6块

用户Alex找到了一个较短的解决方案,长度为6。我可以确认他们的解决方案有效:

O(O(Br G G, 6) Br, 5)

6块

他们尝试编辑此问题以添加此答案,所以我假设他们希望将其显示在此处。我不喜欢声誉系统在这里的运作方式。

他们留下的信息:

编辑器没有10个代表,但是确实有一个长度为6的解。O(O(RG(6,6)R,5)

几天后,他们再次通过编辑帖子来回复:“谢谢您这样做。编辑这是我看到的唯一获得消息的方式。我很高兴消息的存在。不过你想要的。”

旧答案

7座

O(O(G G Br, 4) G Br, 100)

需要耐心。

编辑:图像是错误的。 7座


好发现!我确实尝试过这种方法,但是在放弃并尝试9块解决方案之前并没有在这种特定组合上发生。
Sparr

2
用户Alex声称找到了一个较短的解决方案。
Jonathan Frech

@JonathanFrech的确是他!10 rep的限制很烦人。我知道我们必须防止垃圾邮件,但是新用户是否应该至少采用一种适度的方式发布答案?言论自由。
Reinis Mazeiks

@RM看到问题我也有点生气。我想SE根本不是为一次性答案而设计的,因为令人沮丧的可能是Alex ...
Jonathan Frech

1
您为什么将其编辑为自己的旧答案而不是将其发布为新答案?
Sparr

12

其实我找到了8个区块的解决方案

O(O(O(G,4)R,4)GGR,4)

6

手动找到9块

O(O(GRGLGR,4)L,4)

我从O(O(GGR,4)L,4)解决1-5级的显而易见的问题开始,然后尝试了几种变体,在这些级别上添加了有效的空动作,以找到可以完成6级的动作。 ”,因此前进没有任何效果。


1
这可能是最佳选择,这意味着挑战已经结束。:(
totallyhuman

6
@totallyhuman证明社区尚未完成此工作:P
HyperNeutrino

O(O(GGR,4)L,4)如游戏中所示,“显而易见的”证明第4级的最短解决方案是7。
mik

1
@mik游戏解决方案不依赖于更改循环大小或不执行任何操作的移动。
尼尔,

您预测的@totallyhuman是完全错误的:)。在发布问题一年多之后,找到了更好的解决方案。
凌晨
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.