มีหลายวิธีในการสร้างคำสุ่ม คุณสามารถใช้พยางค์สุ่มจากชุดคุณสามารถใช้ n-tuples อาจเป็นเครือข่ายประสาท (สิ่งที่พวกเขาทำไม่ได้?) สลับระหว่างพยัญชนะและสระ ฯลฯ วิธีการท้าทายนี้มีพื้นฐานมาจากที่เลวร้ายที่สุด . มันใช้เชนมาร์คอฟเพื่อสร้างคำสุ่ม หากคุณคุ้นเคยกับโซ่มาร์คอฟคุณอาจรู้ว่าทำไมวิธีการนี้ถึงแย่มาก
ถ้าคุณต้องการที่จะอ่านเกี่ยวกับโซ่มาร์คอฟ, คลิกที่นี่
โปรแกรมของคุณจะป้อนคำอย่างน้อยหนึ่งคำและสร้างคำสุ่มหนึ่งคำผ่านวิธีการของห่วงโซ่มาร์คอฟแบบถ่วงน้ำหนัก ตั้งแต่ที่อาจจะทำให้รู้สึกถึงไม่มีใคร แต่ฉันนี่คือคำอธิบายผ่านการใช้ภาพของห่วงโซ่มาร์คอฟที่มีการป้อนข้อมูลของabba
:
(น้ำหนักขอบทั้งหมดเท่ากันสำหรับรูปภาพทั้งหมด) โปรแกรมของคุณจะแสดงเส้นทางผ่านห่วงโซ่มาร์คอฟตามข้อความอินพุต อย่างที่คุณเห็นมันมีโอกาส 1/2 ที่มันจะออกa
มาโอกาส 1/8 ของaba
โอกาส 1/16 โอกาสabba
1/32 โอกาสababa
เป็นต้น
นี่คือตัวอย่างอื่น ๆ ของมาร์คอฟเชน:
yabba dabba doo
wolfram
supercalifragilisticexpialidocious
หากคุณต้องการตัวอย่างเพิ่มเติมใช้นี้ (ฉันทำงานหนักเกินไปกับมัน)
รายละเอียดของความท้าทาย:
- อินพุตสามารถใช้เป็นรายการของสตริงหรือเป็นสตริงคั่นด้วยช่องว่างเครื่องหมายจุลภาคหรือขึ้นบรรทัดใหม่
- คุณอาจคิดว่าคำทั้งหมดจะเป็นตัวพิมพ์เล็กทั้งหมดโดยไม่มีเครื่องหมายวรรคตอน (ASCII 97-122)
- คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่น
- ในการทดสอบคุณอาจป้อนตัวอย่างและดูว่าอินพุตทั้งหมดเข้ากับสายมาร์คอฟหรือไม่
นี่คือ รหัสกอล์ฟดังนั้นโปรแกรมของคุณจึงได้คะแนนเป็นไบต์
แจ้งให้เราทราบหากส่วนใดส่วนหนึ่งไม่ชัดเจนและฉันจะพยายามทำให้เข้าใจมากขึ้น
b
ให้คุณไม่สามารถสร้างสองครั้งb
ได้นอกจากนี้เมื่อคุณเข้าถึงb
มัน กลับไปที่start
เพื่อสร้างคำอื่น ๆ ) ฉันเชื่อว่าคุณต้องอธิบายให้ชัดเจนว่าข้อกำหนดคืออะไร
yabba dabba doo
การเกิดอุบัติเหตุ ฉันจะแก้ไขโดยเร็วที่สุด เพื่อที่จะไม่สามารถกลับไปเริ่มต้นใหม่ได้คุณสร้างเพียงหนึ่งคำจากชุดคำที่กำหนด มันชัดเจนหรือไม่?