วัตถุประสงค์
ความคิดคือการให้รหัสที่จำเป็นในการแมปจำนวนเต็ม 32 บิตไปยัง / จากคำที่ออกเสียงได้สูงสุด 9 ตัวอักษร นั่นอาจเป็นประโยชน์ตัวอย่างเช่นเพื่อให้จำหมายเลขได้ง่ายขึ้นหรือพิมพ์ในแบบฟอร์ม
ทั้งวิธีการแปลจำนวนเต็มเป็นคำที่สอดคล้องกันและสำหรับการแปลกลับคำเป็นจำนวนเต็มที่สอดคล้องกันจะต้อง
กฎระเบียบ
จะต้องมีการแมปแบบหนึ่งต่อหนึ่งระหว่างจำนวนเต็มกับคำและทั้งชุดของจำนวนเต็ม 32 บิต (หรือใส่อีกวิธีหนึ่งคือจำนวนเต็มใด ๆ จาก 0 ถึง 4294967295) ต้องสามารถแมปได้ แม้ว่าแน่นอนว่าไม่ใช่ทุกคำที่จะมีความหมายและการป้อนคำที่ไม่ได้แมปไปยังจำนวนเต็มอาจมีพฤติกรรมที่ไม่ระบุ
คุณมีอิสระในการตัดสินใจว่าชุดคำใดที่มีความหมายและสามารถทำแผนที่ได้ แต่อย่างน้อยคำต่างๆต้องเป็นไปตามกฎเหล่านี้:
- ควรใช้เฉพาะตัวอักษร 26 ตัว (A ... Z) เป็นอักขระ ไม่ควรใช้สำเนียงตัวเรือน ฯลฯ ... เพื่อขยายชุดค่าผสมที่เป็นไปได้
- สูงสุด 9 ตัวอักษรต่อคำ
- ไม่ควรวางพยัญชนะสองตัว (BCDFGHJKLMNPQRSTVWXZ - 20 possiblities) ไว้ข้างๆกัน (จะต้องล้อมรอบด้วยสระ)
- ไม่ควรวางสระสองตัว (AEIOUY - 6 ความเป็นไปได้) ไว้ข้างๆกัน (จะต้องล้อมรอบด้วยพยัญชนะ)
หมายเหตุ: รูปแบบที่ง่ายที่สุดที่คุณมีคำทั้งหมดสร้างเป็นCVCVCVCVC
( C
เป็นพยัญชนะและV
สระ) ให้ 4147200000 ชุดและจำนวนเต็ม 32 บิตมีค่าที่เป็นไปได้ 4294967296 ดังนั้นมันไม่เพียงพอ คุณต้องขยายจำนวนชุดค่าผสมไม่ว่าจะโดยการอนุญาตให้ใช้คำที่สั้นกว่าหรือการอนุญาตVCVCVCVCV
รวมกัน
ใช้กฎมาตรฐานอื่น ๆ และห้ามมีช่องโหว่มาตรฐาน
อินพุต / เอาท์พุท
สำหรับการส่งแต่ละครั้งจะต้องมีรหัสสองชิ้น:
- หนึ่งที่ใช้จำนวนเต็มเป็นอาร์กิวเมนต์ / อินพุตและส่งกลับ / พิมพ์คำที่เกี่ยวข้อง
- หนึ่งที่ใช้คำว่าอาร์กิวเมนต์ / input และผลตอบแทน / พิมพ์จำนวนเต็มที่สอดคล้องกัน
หรือคุณสามารถเลือกที่จะส่งรหัสชิ้นเดียวที่จัดการการดำเนินการทั้งสอง:
- เมื่อได้รับจำนวนเต็มเป็นอินพุทก็จะส่งออกคำที่สอดคล้องกัน
- เมื่อได้รับสตริงเป็นอินพุตมันจะส่งออกจำนวนเต็มที่สอดคล้องกัน
สภาพการชนะ
นี่คือcode-golfคำตอบที่มีจำนวนไบต์น้อยที่สุด (เมื่อรวมทั้งสองส่วนของรหัสสำหรับการแก้ปัญหาการเลือกรหัสแยกส่วน) ชนะ