Doodle của Google về mã hóa trẻ em: chương trình ngắn nhất giải quyết tất cả các cấp


26

Hình tượng trưng của Google ngày nay là về kỷ niệm 50 năm mã hóa trẻ em : Mục tiêu là lập trình con đường của một chú thỏ nhỏ để nó có thể ăn tất cả cà rốt. Có 4 loại khối (xem hình bên dưới):

mô tả khối

Từ trái sang phải:

  • O("...", k)= mảnh màu cam: đây là những forvòng lặp thực thi k lần chương trình "...".
  • G = mảnh màu xanh lá cây: tiến lên một bước nếu bạn có thể, nếu không thì không làm gì cả
  • Bl = mảnh màu xanh: rẽ phải và ở trên cùng một khối
  • Br = mảnh màu xanh: rẽ trái và ở trên cùng một khối

chương trình lớn

Mã ở trên có thể được viết là

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

Mỗi khối ( G, Bl, Br, O(...,k)) được tính là 1 đơn vị, vì vậy chương trình này có độ dài 7. Lưu ý hơn giá trị kđược bao gồm trong 1 đơn vị O.

Có 6 cấp độ. Để hoàn thành một cấp độ, bạn cần ăn tất cả cà rốt. Nó không phải là một vấn đề nếu chương trình của bạn không được thực hiện đầy đủ, cấp độ kết thúc trực tiếp khi bạn ăn cà rốt cuối cùng.

Chúng tôi giả định rằng tất cả 4 loại khối có sẵn ở mọi cấp độ.

Nhiệm vụ của bạn là tìm một chương trình duy nhất giải quyết mọi cấp độ của trò chơi.
Chương trình ngắn nhất trong khối chiến thắng.

Ảnh chụp màn hình của từng cấp:
Cấp 1: Cấp 2: Cấp 3: Cấp 4: Cấp 5: Cấp 6:ảnh chụp màn hình cấp 1
ảnh chụp màn hình cấp 2
ảnh chụp màn hình cấp 3
ảnh chụp màn hình cấp 4
ảnh chụp màn hình cấp 5
ảnh chụp màn hình cấp 6

Câu trả lời:


24

Không phải câu trả lời của tôi

6 khối

Người dùng Alex đã tìm thấy một giải pháp ngắn hơn, có độ dài 6. Tôi có thể xác nhận rằng giải pháp của họ hoạt động:

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

6 khối

Họ đã cố gắng chỉnh sửa câu hỏi này để thêm câu trả lời này, vì vậy tôi cho rằng họ muốn nó được hiển thị ở đây. Tôi không thích cách hệ thống danh tiếng hoạt động quanh đây.

Tin nhắn họ để lại:

Trình chỉnh sửa không có 10 rep, nhưng có một giải pháp có độ dài 6. O (O (RGG, 6) R, 5)

Sau một vài ngày họ đã trả lời lại thông qua chỉnh sửa bài đăng với: "Cảm ơn vì đã làm điều này. Chỉnh sửa đây là cách duy nhất tôi thấy để nhận được tin nhắn. Tôi rất vui vì nó tồn tại. Hãy thoải mái đưa nó vào một bài đăng mới nếu bạn muốn mặc dù. "

Câu trả lời cũ

7 khối

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

Kiên nhẫn cần có.

Chỉnh sửa: Hình ảnh đã sai. 7 khối


Tìm tốt Tôi đã thử phương pháp này nhưng không xảy ra với sự kết hợp đặc biệt này trước khi từ bỏ và đi đến giải pháp khối 9 của tôi.
Sparr

2
Người dùng Alex tuyên bố đã tìm thấy một giải pháp ngắn hơn.
Jonathan Frech

@JonathanFrech quả thực anh có! Giới hạn 10 rep đó thật khó chịu. Tôi hiểu rằng chúng ta phải ngăn chặn thư rác, nhưng người dùng mới không nên có ít nhất một cách kiểm duyệt câu trả lời? Tự do ngôn luận và các công cụ.
Reinis Mê cung

@RM Tôi cũng hơi bực mình khi thấy vấn đề. Tôi đoán SE đơn giản là không được thiết kế cho các câu trả lời một lần, vì điều này có lẽ là dành cho Alex ...
Jonathan Frech

1
Tại sao bạn chỉnh sửa nó thành câu trả lời cũ của riêng bạn thay vì đăng nó như một câu trả lời mới?
Sparr

12

Trên thực tế, tôi tìm thấy một giải pháp với 8 khối

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

6

Tìm thấy thủ công, 9 khối

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

Tôi đã bắt đầu với một điều hiển nhiên O(O(GGR,4)L,4)là giải quyết các cấp 1-5 sau đó thử một vài biến thể thêm các bước di chuyển vô hiệu quả ở các cấp đó để tìm một cấp độ hoàn thành cấp 6. Ngắn nhất là một chuyển tiếp đơn giản sang phải ở giữa mỗi "cây cầu "Vì vậy, di chuyển về phía trước không có hiệu lực.


1
Điều này có lẽ là tối ưu có nghĩa là thách thức đã kết thúc. :(
hoàn toàn là

6
@totallyhuman hóa ra cộng đồng chưa hoàn thành với điều này: P
HyperNeutrino

"Rõ ràng O(O(GGR,4)L,4)" bác bỏ rằng giải pháp ngắn nhất cho cấp 4 là 7, như thể hiện trong trò chơi.
mik

1
@mik Các giải pháp trò chơi không dựa vào việc thay đổi kích thước vòng lặp hoặc di chuyển mà không làm gì.
Neil

@totallyhuman bạn dự đoán là khá sai :). Thậm chí hơn một năm sau khi câu hỏi được đăng, một giải pháp tốt hơn đã được tìm thấy.
Surb
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.