มีคนสร้างนาฬิกาแฟนซีขึ้นมาจริงๆโดยใช้ตัวเลขฟีโบนักชีซึ่งดูดีมาก แต่ใช้ไม่ได้ ในแบบที่เราชอบ! มาสร้างใหม่กันเถอะ
นาฬิกาประกอบด้วย 5 ส่วนที่สอดคล้องกับหมายเลข Fibonacci ห้าตัวแรกเริ่มต้นจาก 1 (เช่น 1, 1, 2, 3, 5):
ccbeeeee
ccaeeeee
dddeeeee
dddeeeee
dddeeeee
นาฬิกาสามารถแสดงเวลา 12 ชั่วโมงโดยเพิ่มทีละ 5 นาที นี่คือวิธีการทำงาน พิจารณาเวลา 7:20 7 ชั่วโมงสามารถแบ่งออกเป็นตัวเลขที่ได้รับ Fibonacci เป็น
7 = 2 + 5
นอกจากนี้ยังมี 4 หน่วยห้านาที 4 สามารถย่อยสลายได้เป็น
4 = 2 + 1 + 1
ตอนนี้เวลาจะแสดงเป็นสีแดงนาทีเป็นสีเขียวและถ้าใช้ตัวเลขทั้งชั่วโมงและนาทีมันจะเป็นสีน้ำเงิน หากหมายเลขไม่ได้ถูกใช้เลยก็จะเป็นสีขาว ดังนั้นข้างต้นจะแสดงเป็น:
BBGRRRRR
BBGRRRRR
WWWRRRRR
WWWRRRRR
WWWRRRRR
แต่เดี๋ยวก่อนยังมีอีกมาก การสลายตัวข้างต้นไม่ได้เป็นเพียงความเป็นไปได้เท่านั้น หนึ่งยังสามารถเขียน7 = 3 + 2 + 1 + 1
และ4 = 3 + 1
ซึ่งจะให้อย่างใดอย่างหนึ่ง
GGRWWWWW GGBWWWWW
GGBWWWWW GGRWWWWW
BBBWWWWW or BBBWWWWW
BBBWWWWW BBBWWWWW
BBBWWWWW BBBWWWWW
ขึ้นอยู่กับว่า 1
เลือก แน่นอนว่ายังมีชุดค่าผสมอื่น ๆ เช่นกัน นาฬิกาเลือกจากการย่อยสลายที่ถูกต้องทั้งหมดโดยการสุ่ม
อย่างที่ฉันพูดไป ... นี่อาจจะไม่ได้รับรางวัลการใช้งาน แต่มันก็ดูดี
ความท้าทาย
งานของคุณคือการใช้นาฬิกาดังกล่าว โปรแกรม (หรือฟังก์ชั่น) ของคุณควรพิมพ์การแสดง ASCII ของเวลาปัจจุบัน (ปัดเศษลงเป็นทวีคูณสุดท้ายของ 5 นาที) ตามที่อธิบายไว้ข้างต้นเพื่อ STDOUT หรือทางเลือกที่ใกล้เคียงที่สุด คุณอาจเลือกที่จะอ่านเวลาในรูปแบบทั่วไปใด ๆ เป็นอินพุตหรือขอรับมันด้วยฟังก์ชันไลบรารีมาตรฐาน คุณต้องไม่คิดว่าเวลาปัจจุบัน / เวลาที่กำหนดแบ่งได้ 5 นาที
โซลูชันของคุณต้องเลือกแบบสุ่มจากการนำเสนอที่เป็นไปได้ทั้งหมดของเวลาปัจจุบัน นั่นคือการแทนแต่ละรายการจะต้องพิมพ์ด้วยความน่าจะเป็นที่ไม่ใช่ศูนย์
เที่ยงคืนและเที่ยงควรได้รับการปฏิบัติตาม 0:00
(ตรงข้ามกับ12:00
)
คุณอาจเลือกพิมพ์อักขระขึ้นบรรทัดใหม่ที่ต่อท้ายหนึ่งตัว
คุณสามารถใช้อักขระ ASCII ที่พิมพ์ได้สี่ตัว (รหัสอักขระ 0x20 ถึง 0xFE) แทน RGBW
ในสถานที่ของ โปรดระบุตัวเลือกของคุณในคำตอบและใช้อย่างสม่ำเสมอ
นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุด (เป็นไบต์) ชนะ