Mash Up Time!
นี้เป็นงวดที่ 5 ของทั้งสองของฉันกอล์ฟสุ่มของวันและเพิ่มประสิทธิภาพของศิลปะ ASCII ของวันซีรีส์ การส่งของคุณในการท้าทายนี้จะนับรวมทั้งกระดานผู้นำ (ซึ่งคุณสามารถค้นหาโพสต์ที่เชื่อมโยง) แน่นอนว่าคุณอาจปฏิบัติเช่นนี้กับการแข่งขันกอล์ฟอื่น ๆ และตอบคำถามโดยไม่ต้องกังวลกับทั้งสองซีรีย์
หลุมที่ 5: การเอียงเพชร
รูปหกเหลี่ยมปกติสามารถปูด้วยเพชรได้เช่น:
เราจะใช้การแทนค่า ASCII art ของ tilings เหล่านี้ สำหรับรูปหกเหลี่ยมของความยาวด้าน 2 มี 20 แบบดังกล่าว:
____ ____ ____ ____ ____ ____ ____ ____ ____ ____
/\_\_\ /\_\_\ /\_\_\ /\_\_\ /_/\_\ /_/\_\ /\_\_\ /_/\_\ /_/\_\ /_/\_\
/\/\_\_\ /\/_/\_\ /\/_/_/\ /\/_/\_\ /\_\/\_\ /\_\/_/\ /\/_/_/\ /\_\/\_\ /\_\/_/\ /_/\/\_\
\/\/_/_/ \/\_\/_/ \/\_\_\/ \/_/\/_/ \/\_\/_/ \/\_\_\/ \/_/\_\/ \/_/\/_/ \/_/\_\/ \_\/\/_/
\/_/_/ \/_/_/ \/_/_/ \_\/_/ \/_/_/ \/_/_/ \_\/_/ \_\/_/ \_\/_/ \_\/_/
____ ____ ____ ____ ____ ____ ____ ____ ____ ____
/_/_/\ /\_\_\ /_/\_\ /_/_/\ /_/\_\ /_/\_\ /_/_/\ /_/_/\ /_/_/\ /_/_/\
/\_\_\/\ /\/_/_/\ /_/\/_/\ /\_\_\/\ /\_\/_/\ /_/\/_/\ /_/\_\/\ /\_\_\/\ /_/\_\/\ /_/_/\/\
\/\_\_\/ \/_/_/\/ \_\/\_\/ \/_/\_\/ \/_/_/\/ \_\/_/\/ \_\/\_\/ \/_/_/\/ \_\/_/\/ \_\_\/\/
\/_/_/ \_\_\/ \_\/_/ \_\/_/ \_\_\/ \_\_\/ \_\/_/ \_\_\/ \_\_\/ \_\_\/
ให้ความยาวด้านN
คุณควรสร้างแบบเรียงต่อกันสำหรับความยาวด้านหกเหลี่ยมN
โดยการสุ่ม การแจกแจงที่แน่นอนนั้นไม่สำคัญ แต่การคืนค่าแต่ละครั้งจะต้องถูกส่งกลับด้วยความน่าจะเป็นที่ไม่ใช่ศูนย์
สำหรับN ≤ 4
การส่งของคุณจะต้องสร้างการปูกระเบื้องภายใน 1 นาทีอย่างน้อย 80% ของเวลาและอย่างน้อย 80% ของการเอียงจะต้องสร้างขึ้นภายใน 1 นาที วิธีการส่วนใหญ่ไม่ต้องกังวลเกี่ยวกับกฎนี้ (มันผ่อนปรนมาก) - นี่เป็นเพียงการออกกฎขั้นตอนวิธีการปฏิเสธที่ไร้เดียงสามากที่สร้างสตริงโดยพลการจนกว่าจะมีการเรียงต่อกัน
คุณอาจต้องการที่จะรู้ว่าจำนวนรวมของ tilings เป็นไปได้สำหรับให้ N สามารถพบได้ในOEIS A008793
คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่นเต็มรูปแบบและรับอินพุตผ่าน STDIN (หรือทางเลือกที่ใกล้เคียงที่สุด) อาร์กิวเมนต์บรรทัดคำสั่งหรืออาร์กิวเมนต์ฟังก์ชันและสร้างเอาต์พุตผ่าน STDOUT (หรือทางเลือกที่ใกล้เคียงที่สุด), ค่าส่งคืนของฟังก์ชันหรือพารามิเตอร์
คุณต้องไม่ส่งออกช่องว่างนำหน้ามากกว่าที่จำเป็นเพื่อจัดตำแหน่งรูปหกเหลี่ยม (นั่นคือมุมซ้ายของรูปหกเหลี่ยมไม่ควรมีช่องว่างด้านหน้า) แต่ละบรรทัดอาจมีN
ช่องว่างต่อท้าย (ไม่จำเป็นต้องสม่ำเสมอดังนั้นคุณอาจมีเอาต์พุตสี่เหลี่ยมพิมพ์กล่องขอบเขตของรูปหกเหลี่ยม)
นี่คือรหัสกอล์ฟดังนั้นการส่งที่สั้นที่สุด (เป็นไบต์) ชนะ และแน่นอนว่าการส่งสั้นที่สุดต่อผู้ใช้จะเข้าสู่กระดานผู้นำโดยรวมของซีรีย์ด้วย
ลีดเดอร์
โพสต์แรกของแต่ละชุดสร้างกระดานแต้มนำ
เพื่อให้แน่ใจว่าคำตอบของคุณปรากฏขึ้นโปรดเริ่มต้นทุกคำตอบด้วยบรรทัดแรกโดยใช้เทมเพลต Markdown ต่อไปนี้:
# Language Name, N bytes
ที่N
มีขนาดของส่งของคุณ หากคุณปรับปรุงคะแนนของคุณคุณสามารถเก็บคะแนนเก่าไว้ในพาดหัวโดยการตีพวกเขาผ่าน ตัวอย่างเช่น
# Ruby, <s>104</s> <s>101</s> 96 bytes
(ภาษาไม่ปรากฏในปัจจุบัน แต่ตัวอย่างข้อมูลต้องการและแยกวิเคราะห์และฉันอาจเพิ่มกระดานผู้นำแบบแยกภาษาในอนาคต)
For N ≤ 4, your submission must produce a tiling within 1 minute at least 80% of the time.
ง่ายเกินไป: 80% ของเวลาเหมือนกันกับการปูกระเบื้องขั้นพื้นฐานมิฉะนั้นฉันจะพบการเรียงต่อกันอีกครั้งในเวลาใดก็ตามที่ฉันต้องการ