คุณไม่ได้ลงทะเบียนเพื่อสร้างโดนัทสำหรับ The Donut Shop ™ บริษัท โดนัทดิจิทัลที่ใหญ่ที่สุดในโลกส่วนใหญ่เป็นเพราะพวกเขาขายโดนัททุกขนาดเท่าที่จะเป็นไปได้
ตอนนี้มาตรฐานการซื้อขายในปัจจุบันยากมากคุณต้องเขียนโค้ดให้สั้นที่สุดเท่าที่จะทำได้เพื่อสร้างโดนัทเหล่านี้เพื่อให้ซอร์สโค้ดที่สร้างขึ้นนั้นสามารถวางไว้ด้านนอกของแพ็กเก็ตได้
ท้าทาย
ให้ 4 อินพุตรัศมีของวงแหวนรอบนอกรัศมีของวงแหวนด้านในโรยที่เป็นไปได้และโอกาสของเซลล์ที่มีการโรยเอาท์พุทโดนัทที่ปกคลุมด้วยโรยเหล่านั้นซึ่งมีรัศมีด้านในและด้านนอกที่ถูกต้อง
- อินพุตอาจถูกใช้ตามที่คุณต้องการ (อาร์กิวเมนต์ของฟังก์ชัน stdin, อาร์กิวเมนต์ของโปรแกรม) และในลำดับใด ๆ
- โรยจะได้รับในรูปแบบ 1 ตัวอักษรต่อประเภทโรย
- ^+*-เป็น input โรยจะเป็นรายการของ 4 โรย,- ^,- +,- *,- -
- โอกาสของการโรยจะถูกป้อนเป็นค่าทศนิยมระหว่าง 0 ถึง 1 เช่น: 0.1,0.23
 
- คุณต้องพิมพ์เอาต์พุตไปที่ stdout หรือเทียบเท่า
- โรยหน้าไม่ได้บนขอบของโดนัท
- การโรยแต่ละประเภทจะต้องมีโอกาสเท่ากันในแต่ละเซลล์
- รัศมีจะได้รับในหน่วย 1 เซลล์
- หากรัศมีภายในเท่ากับ 0 หรือรัศมีด้านนอกโดนัทจะถูกบอกว่าไม่มีวงแหวน
- รัศมีทั้งสองจะเป็นจำนวนเต็มที่ไม่เป็นลบ
- ขอบด้านในและด้านนอกของโดนัทจะต้องแสดงโดยใช้แฮช ( #)
- การทดสอบเพื่อดูว่ามีจุดอยู่ในวงกลมหรือไม่โดยกำหนดรัศมีและจุดศูนย์กลางของวงกลมคือ: - (x-center)**2+(y-center)**2 < radius**2
ตัวอย่างอินพุตพร้อมเอาต์พุต
(รัศมีด้านนอกรัศมีด้านในโรยโอกาสของการโรย)
- 10, 4, "^ + * -", 0.1 - ######### # # ## ++ * *## # # # ^^ - * # # ##### ^ # #+ # # # # # #- # # # # * # # # #+ # # # # # #^ +# # # # # # # # * ##### # # + - # # ^ # ## ^ + ## # ^ # #########
- 5, 2, ": ^ + *", 0.9 - ##### #^^+ ^# #**### # #:# #^# #^# #*# #:# #*# #:+###* # # *:^:# #####
นี่คือรหัสกอล์ฟคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ
10, 4และ5, 2แตกต่างกันมาก ฉันจะแสดงความคิดเห็นต่อคำตอบ แต่ฉันรู้ว่าฉันไม่เข้าใจจริง ๆ ว่าผลลัพธ์ควรมีลักษณะอย่างไรสำหรับมิติใด ๆ แต่อยู่ในตัวอย่าง หากคุณต้องการเปลี่ยนความคิดดั้งเดิมของคุณให้ตรงกับผลลัพธ์จากคำตอบนั่นก็ขึ้นอยู่กับคุณ แต่ความท้าทายควรกำหนดวิธีการวาดเส้นขอบอย่างชัดเจน