6
แจกแจงแผนการสัมผัส
A "สัมผัสโครงการ" คือสตริงของตัวอักษรaที่จะzดังกล่าวว่าเกิดขึ้นครั้งแรกของตัวละครที่อยู่ในลำดับจากน้อยไปมาก (ไม่มีช่องว่าง) aเริ่มต้นจาก ตัวอย่างเช่น (ที่มีการปรากฏครั้งแรก): abccdbebdcfa ^^^ ^ ^ ^ จำนวนของรูปแบบการสัมผัสของความยาวNจะได้รับจากหมายเลขที่เบลล์ B(N)( OEIS A000110 ) ความท้าทาย งานของคุณคือการใช้การแจงนับของรูปแบบสัมผัสเหล่านี้เช่นการทำแผนที่ bijective จากจำนวนเต็มไปยังรูปแบบสัมผัส คุณได้รับเป็นจำนวนเต็มบวกเช่นเดียวกับจำนวนเต็มไม่เป็นลบN <= 26 หรือคุณสามารถใช้ช่วง0 <= i < B(N) 1 <= i <= B(N)คุณควรเอาท์พุทแบบแผนสัมผัสของความยาวNเช่นที่ทุกคนiให้สตริงที่แตกต่างกัน คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่น, รับอินพุตผ่าน STDIN (หรือทางเลือกที่ใกล้เคียงที่สุด), อาร์กิวเมนต์บรรทัดคำสั่งหรืออาร์กิวเมนต์ของฟังก์ชันและส่งผลลัพธ์ผ่าน STDOUT (หรือทางเลือกที่ใกล้เคียงที่สุด), ค่าส่งคืนของฟังก์ชันหรือพารามิเตอร์ คุณสามารถใช้ตัวอักษรพิมพ์เล็กหรือพิมพ์ใหญ่ รหัสของคุณจะต้องสามารถจัดการกับการป้อนข้อมูลที่ถูกต้องในระยะเวลาที่เหมาะสม (เช่นไม่เกินสองสามชั่วโมงสำหรับN = 26กรณีที่เลวร้ายที่สุดi) สิ่งนี้ควรอนุญาตโซลูชันที่ปรับมาตราส่วนแบบทวีคูณด้วยN(สำหรับฐานขนาดเล็ก) แม้ในภาษาที่ช้า แต่ห้ามใช้โซลูชันที่ขยายขนาดเชิงเส้นด้วยi(เช่นB(N)) …