งาน
เข้ารหัสสตริงที่ประกอบด้วยตัวอักษรตัวพิมพ์ใหญ่ทั้งหมด ( A-Z
) โดยใช้ศูนย์และคนโดยใช้รูปแบบที่คุณชื่นชอบ แต่กฎนั้นไม่ง่ายเลย!
กฎระเบียบ
- โปรแกรมของคุณ / ฟังก์ชั่นได้อย่างถูกต้องจะต้องจัดการกับสายป้อนถูกต้องใด ๆ ของความยาว 8
- ผลลัพธ์จะต้องมีความยาวเท่ากันสำหรับอินพุตทั้งหมด
- ผลลัพธ์จะต้องแตกต่างกันสำหรับอินพุตที่แตกต่างกัน
- ผลลัพธ์จะต้องสั้นที่สุด
- ผลลัพธ์จะต้องมีศูนย์ที่สมดุลหนึ่งศูนย์ (มีจำนวนที่ใกล้เคียงกับศูนย์) พวกเขาไม่จำเป็นต้องเท่ากัน (เช่นสมดุลอย่างสมบูรณ์) แต่คะแนนของคุณจะถูกลงโทษสำหรับสิ่งนั้น
คุณไม่จำเป็นต้องจัดเตรียมโปรแกรม / ฟังก์ชั่นที่ถอดรหัสการเข้ารหัสของคุณ
อินพุตและเอาต์พุต
- คุณสามารถตัดสินใจที่จะยอมรับชุดของ 26 ที่แตกต่างใด ๆตัวอักขระ ASCII
A-Z
แทน - คุณสามารถตัดสินใจที่จะส่งออกคู่ที่แตกต่างใด ๆตัวอักขระ ASCIIแทนและ
0
1
- คุณไม่ได้รับอนุญาตให้ส่งออกจำนวนเต็มแทนที่จะเป็นบิตสตริงเนื่องจากมันอาจมีศูนย์นำหน้าและไม่มีความชัดเจนหากคุณปฏิบัติตามกฎ 2 จริง ๆ
- หากคุณตัดสินใจที่จะเบี่ยงเบนจากค่าเริ่มต้น (
A-Z
อินพุตและ01
เอาต์พุต) คุณต้องระบุชุดอักขระอินพุต / เอาต์พุตในการส่งของคุณ
เกณฑ์การให้คะแนน
- คะแนนฐาน: ขนาดรหัสหรือ 1 ถ้าโปรแกรมของคุณว่างเปล่า
- บทลงโทษ
- การลงโทษสำหรับความยาว: ทวีคูณ
1.5 ** (encoded length - 42)
- ไม่มีโบนัสสำหรับการสั้นลง; 42 คือความยาวที่น้อยที่สุดสำหรับการเข้ารหัสที่สมดุลอย่างสมบูรณ์ของสตริง 8 ความยาวที่มีขนาดตัวอักษร 26
- บทลงโทษสำหรับความไม่สมดุล: ทวีคูณ
2 ** max(abs(ones - zeros) for every valid input of length 8)
ที่ไหนones
และzeros
มีค่านับ 1 และ 0 ในแต่ละเอาต์พุตตามลำดับ - การส่งของคุณจะต้องแสดงตัวอย่างกรณีที่เลวร้ายที่สุด (อินพุต / เอาต์พุต) หรือคำอธิบายทางทฤษฎีเกี่ยวกับค่าปรับ
- การลงโทษสำหรับความยาว: ทวีคูณ
- คะแนนต่ำสุดชนะ
ส่งตัวอย่าง
esolang สมมุติฐาน, 0 ไบต์, คะแนน 74733.8906
นี่คือ esolang สมมุติโดยที่โปรแกรมเปล่าพิมพ์รหัส ASCII ทั้งหมดของอักขระอินพุตในไบนารี
ตัวอย่างเช่นถ้าคุณให้AAAAAAAA
เป็น input โปรแกรมจะพิมพ์1000001
ครั้งที่ 8 10000011000001100000110000011000001100000110000011000001
ในแถวคือ
CEFGIJKLMNQRSTUVXYZabcdefh
ตัวอักษรอินพุตรับเลือกให้เป็น ด้วยวิธีนี้ตัวอักษรทั้งหมดจะถูกแปลงเป็นเลขเจ็ดหลักในไบนารีและจำนวนศูนย์หนึ่งแตกต่างกันเพียงหนึ่งต่อถ่าน (พวกเขาทั้งหมดมีสาม 1 และสี่ 0 หรือในทางกลับกันเมื่อแปลงเป็นไบนารี)
ความยาวของเอาต์พุตอยู่ที่ 56 และความไม่สมดุลของกรณีที่เลวร้ายที่สุดเกิดขึ้นกับอินพุตเช่นCCCCCCCC
ซึ่งค่าศูนย์จะปรากฏขึ้น 8 ครั้งมากกว่าที่เป็นอยู่
1.5 ** (56 - 42) * 2 ** 8 == 74733.8906
ดังนั้นคะแนนของการส่งนี้