Doodle ของ Google ในการเข้ารหัสเด็ก: โปรแกรมที่สั้นที่สุดที่แก้ปัญหาทุกระดับ


26

Doodle Google ในวันนี้เป็นเรื่องเกี่ยวกับการฉลอง 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

คำตอบ:


24

ไม่ใช่คำตอบของฉัน

6 บล็อก

ผู้ใช้Alexพบวิธีแก้ปัญหาที่สั้นกว่าโดยมีความยาว 6 ฉันสามารถยืนยันได้ว่าโซลูชันของตนทำงานได้:

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

6 บล็อก

พวกเขาพยายามแก้ไขคำถามนี้เพื่อเพิ่มคำตอบนี้ดังนั้นฉันคิดว่าพวกเขาต้องการให้แสดงที่นี่ ฉันไม่ชอบวิธีที่ระบบชื่อเสียงทำงานที่นี่

ข้อความที่เหลือ:

เครื่องมือแก้ไขไม่มี 10 ตัวแทน แต่มีวิธีแก้ปัญหาความยาว 6 O (O (RGG, 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 ไม่ได้ถูกออกแบบมาสำหรับคำตอบเพียงครั้งเดียวเนื่องจากมันน่าผิดหวังสำหรับอเล็กซ์ ...
Jonathan Frech

1
ทำไมคุณแก้ไขมันเป็นคำตอบเดิมของคุณเองแทนที่จะโพสต์เป็นคำตอบใหม่
Sparr


6

พบด้วยตนเอง 9 บล็อก

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

ฉันเริ่มต้นด้วยสิ่งที่ชัดเจนO(O(GGR,4)L,4)ว่าแก้ระดับ 1-5 จากนั้นลองเปลี่ยนรูปแบบไม่กี่ครั้งเพิ่มการเคลื่อนไหวแบบไม่มีค่าใช้จ่ายในระดับเหล่านั้นเพื่อค้นหาระดับที่จะเสร็จสมบูรณ์ในระดับ 6 สั้นที่สุดคือด้านขวาไปข้างหน้า - ซ้าย - กลาง "ดังนั้นการย้ายไปข้างหน้าจึงไม่มีผลกระทบ


1
นี่อาจเป็นสิ่งที่ดีที่สุดซึ่งหมายความว่าความท้าทายได้สิ้นสุดลงแล้ว :(
เต็มเปาโดยมนุษย์

6
@tallyallyhuman กลับกลายเป็นว่าชุมชนยังไม่ได้ทำสิ่งนี้: P
HyperNeutrino

"ชัดเจนO(O(GGR,4)L,4)" พิสูจน์ว่าโซลูชันที่สั้นที่สุดสำหรับเลเวล 4 คือ 7 ดังที่แสดงในเกม
mik

1
@mik โซลูชันเกมไม่พึ่งพาการเปลี่ยนขนาดลูปหรือการเคลื่อนไหวที่ไม่ทำอะไรเลย
Neil

@tallyally มนุษย์ที่คุณคาดการณ์ค่อนข้างผิด :) มากกว่าหนึ่งปีหลังจากที่โพสต์คำถามพบวิธีแก้ปัญหาที่ดีกว่า
Surb
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.