เกี่ยวกับซีรี่ส์
ก่อนอื่นคุณอาจปฏิบัติเช่นนี้กับการแข่งขันกอล์ฟอื่น ๆ และตอบคำถามโดยไม่ต้องกังวลกับซีรีย์เลย อย่างไรก็ตามมีลีดเดอร์บอร์ดสำหรับทุกความท้าทาย คุณสามารถค้นหาลีดเดอร์พร้อมกับข้อมูลบางอย่างเพิ่มเติมเกี่ยวกับซีรีส์ในโพสต์แรก
หลุม 8: สุ่มรายการที่ไม่มีที่สิ้นสุด
คุณควรเขียนฟังก์ชันหรือโปรแกรมที่รับรายการอนันต์เป็นอินพุตและส่งคืนเวอร์ชันแบบสับของรายการนั้น
เกี่ยวกับ I / O ไม่มีที่สิ้นสุด
มีหลายวิธีที่คุณสามารถรับอินพุตและสร้างเอาต์พุตสำหรับความท้าทายนี้:
- คุณสามารถเลือกรายการจำนวนเต็มบวกหรือการแทนสตริงดังกล่าวหรือสตริงหรือรายการอักขระ ASCII ที่พิมพ์ได้ (0x20 ถึง 0x7E, รวมไว้ด้วย) รูปแบบผลลัพธ์ต้องตรงกับรูปแบบอินพุต ฉันจะดูข้อมูลว่า "รายการ" ต่อจากนี้ไปไม่ว่าคุณจะเลือกตัวเลือกใด
- คุณสามารถอ่านรายการจากอินพุตมาตรฐานแบบไม่สิ้นสุดและเขียนเอาต์พุตอย่างต่อเนื่องไปยังเอาต์พุตมาตรฐานแบบไม่สิ้นสุด การแก้ปัญหาไม่ควรขึ้นอยู่กับค่าเฉพาะหรือลำดับของค่าใด ๆ เพื่อให้แน่ใจว่าเอาต์พุตสตรีมจะถูกเขียนและล้างข้อมูลอย่างสม่ำเสมอ (เช่นคุณไม่สามารถเขียนเอาต์พุตเมื่อใดก็ตามที่มี
5
ในรายการอินพุต) แน่นอนถ้าคุณอ่านการแทนค่าสตริงของรายการคุณจะต้องรอจนกว่าจะเจอตัวคั่นรายการ - ในภาษาที่รองรับพวกเขาคุณสามารถเขียนฟังก์ชั่นที่รับและส่งคืนรายการหรือสตริงที่ไม่มีที่สิ้นสุดที่ขี้เกียจ
- ในภาษาที่สนับสนุนพวกเขาคุณอาจใช้เครื่องมือสร้างที่ไม่มีที่สิ้นสุดซึ่งใช้ตัวสร้างอื่นเป็นอินพุต
- หรือคุณสามารถเขียนฟังก์ชั่นที่ไม่มีข้อโต้แย้งและคืนค่าเอาต์พุตหนึ่งค่าในแต่ละครั้งที่เรียกใช้ ในกรณีนี้คุณสามารถสันนิษฐานได้ว่าฟังก์ชั่นได้รับการกำหนดซึ่งจะไม่มีข้อโต้แย้งและส่งกลับค่าการป้อนข้อมูลต่อไปในแต่ละครั้งที่มันถูกเรียก คุณสามารถเลือกชื่อของฟังก์ชันนั้นได้อย่างอิสระ
คุณอาจสมมติว่าโปรแกรมของคุณทำงานตลอดไปและมีหน่วยความจำที่ไม่มีที่สิ้นสุด (เป็นไปได้ที่จะแก้ปัญหานี้ด้วยจำนวนหน่วยความจำที่ จำกัด แต่สิ่งนี้หมายความว่าคุณได้รับอนุญาตให้หน่วยความจำรั่วไหล)
เกี่ยวกับการสุ่ม
สำหรับค่าใด ๆvที่อ่านที่ตำแหน่งiของอินพุตไม่สิ้นสุดจะต้องมีความเป็นไปได้ในเชิงบวกที่จะสิ้นสุดในตำแหน่งใด ๆi-9ถึงi +9ของเอาต์พุตแบบไม่ จำกัด (เว้นแต่ตำแหน่งนั้นจะเป็นค่าลบ ) ความน่าจะเป็นเหล่านี้ไม่จำเป็นต้องเหมือนกันสำหรับตำแหน่งเอาต์พุตที่ต่างกันหรือแม้แต่สำหรับตำแหน่งอินพุตที่ต่างกัน ไม่เป็นไรหากโซลูชันของคุณสามารถสับเปลี่ยนค่าไปยังตำแหน่งอื่นที่อยู่ไกลออกไปได้
ดังนั้นจึงไม่จำเป็นที่โซลูชันของคุณจะสามารถสับเปลี่ยนค่าแรกที่อยู่ไกลสุดในรายการได้หรืออาจสับเปลี่ยนค่าที่ช้ามากจนถึงตำแหน่งแรกแม้ว่าจะใช้ได้ดีก็ตามถ้าทำได้ตราบใดที่ตำแหน่งทั้งหมด 9 ขั้นจาก อินพุตเป็นไปได้
เช่นถ้าคุณใช้สตริงต่อไปนี้เป็นอินพุตการ___
บ่งชี้ตำแหน่งทั้งหมดที่X
จะต้องสามารถสิ้นสุดในผลลัพธ์:
___________________
abcdefghijklmnopqrstuvwxyzXabcdefghijklmnopqrstuvwxyz...
หากภาษาของคุณไม่มีตัวสร้างตัวเลขสุ่มในตัวหรือคุณไม่ต้องการใช้มันคุณอาจใช้ค่าเมล็ดเพิ่มเติมเป็นอินพุตและใช้RNG ที่เหมาะสมของคุณเองโดยใช้เมล็ด หน้านี้อาจมีประโยชน์สำหรับสิ่งนั้น
โดยไม่คำนึงถึงการกระจายจริงใช้วิธีการแก้ปัญหาของคุณจะต้องเกือบแน่นอนผลิตค่าถัดไปหลังจากที่มีการ จำกัด ( แต่พล) เวลา
โปรดระบุคำอธิบายสั้น ๆ เกี่ยวกับวิธีการนำไปใช้ของคุณเป็นไปตามข้อกำหนดเหล่านี้
เกณฑ์การให้คะแนน
นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดที่ถูกต้อง - วัดเป็นไบต์ - ชนะ
ลีดเดอร์บอร์ด
โพสต์แรกของซีรีส์สร้างกระดานผู้นำ
เพื่อให้แน่ใจว่าคำตอบของคุณปรากฏขึ้นโปรดเริ่มต้นทุกคำตอบด้วยบรรทัดแรกโดยใช้เทมเพลต Markdown ต่อไปนี้:
# Language Name, N bytes
ที่N
มีขนาดของส่งของคุณ หากคุณปรับปรุงคะแนนของคุณคุณสามารถเก็บคะแนนเก่าไว้ในพาดหัวโดยการตีพวกเขาผ่าน ตัวอย่างเช่น
# Ruby, <s>104</s> <s>101</s> 96 bytes
(ภาษาไม่ปรากฏในปัจจุบัน แต่ตัวอย่างข้อมูลต้องการและแยกวิเคราะห์และฉันอาจเพิ่มกระดานผู้นำแบบแยกภาษาในอนาคต)