นี้เป็นรุ่นที่เสียงของการเข้ารหัสภาพความท้าทายทวิตเตอร์
ออกแบบรูปแบบการบีบอัดสัญญาณเสียงที่สามารถแสดงเพลงอย่างน้อยหนึ่งนาทีใน 140 ไบต์หรือน้อยกว่าของข้อความที่เข้ารหัส UTF-8 ที่พิมพ์ได้
ใช้งานได้โดยการเขียนโปรแกรมบรรทัดคำสั่งที่ใช้อาร์กิวเมนต์ 3 ตัวต่อไปนี้ (หลังชื่อของโปรแกรมเอง):
- สตริงหรือ
encode
decode
- ชื่อไฟล์อินพุต
- ชื่อไฟล์ที่ส่งออก
(หากภาษาการเขียนโปรแกรมที่คุณต้องการไม่มีความสามารถในการใช้อาร์กิวเมนต์บรรทัดคำสั่งคุณอาจใช้วิธีอื่น แต่ต้องอธิบายในคำตอบของคุณ)
การencode
ดำเนินการจะแปลงจากรูปแบบเสียงที่คุณเลือกเป็นรูปแบบ“ ทวีต” ที่ถูกบีบอัดและการdecode
ดำเนินการจะแปลงจากรูปแบบ“ ทวีต” ของคุณไปเป็นรูปแบบเสียงต้นฉบับ (แน่นอนคุณคาดว่าจะใช้การบีบอัดแบบสูญเสียดังนั้นไฟล์เอาต์พุตไม่จำเป็นต้องเหมือนกันกับอินพุตเพียงในรูปแบบเดียวกัน)
รวมไว้ในคำตอบของคุณ:
- ซอร์สโค้ดของโปรแกรมของคุณเต็ม (ถ้ามันยาวเกินไปสำหรับหน้านี้คุณอาจโฮสต์ไว้ที่อื่นและโพสต์ลิงก์ไปที่มัน)
- คำอธิบายวิธีการทำงาน
- อย่างน้อยหนึ่งตัวอย่างมีลิงก์ไปยังไฟล์เสียงต้นฉบับข้อความ“ ทวีต” ที่บีบอัดลงไปและไฟล์เสียงที่ได้รับจากการถอดรหัสทวีต (ผู้ตอบรับผิดชอบการยืนยันการใช้งานลิขสิทธิ์อย่างเป็นธรรม)
กฎระเบียบ
- ฉันขอสงวนสิทธิ์ที่จะปิดช่องโหว่ใด ๆ ในกฎการแข่งขันได้ตลอดเวลา
- [แก้ไขเมื่อวันที่ 24 เมษายน]สำหรับการป้อนข้อมูล
encode
ฟังก์ชั่นของคุณ(และเอาท์พุทdecode
ฟังก์ชั่นของคุณ) คุณสามารถใช้รูปแบบเสียงทั่วไปที่สมเหตุสมผลไม่ว่าจะเป็น:- รูปแบบของคลื่นที่ไม่บีบอัดเช่น WAV
- รูปคลื่นที่บีบอัดเช่น MP3
- สไตล์“ Sheet music” เช่น MIDI
- รูปแบบ“ ทวีต” ที่ถูกบีบอัดของคุณจะต้องเข้ารหัสเสียงในไฟล์อินพุต ดังนั้นเอาต์พุตประเภทต่อไปนี้จะไม่ถูกนับ:
- URI หรือพา ธ ไฟล์ที่ระบุตำแหน่งที่เก็บข้อมูลจริง
- กุญแจสำคัญในตารางฐานข้อมูลที่เก็บผลลัพธ์จริงเป็น blob
- สิ่งที่คล้ายกัน
- โปรแกรมของคุณจะต้องได้รับการออกแบบให้บีบอัดไฟล์เพลงทั่วไปดังนั้นอย่าทำสิ่งที่ผูกติดอยู่กับตัวอย่างเพลงของคุณโดยเฉพาะ ตัวอย่างเช่นหากคุณกำลังแสดง“ Twinkle, Twinkle, Little Star” ชุดคำสั่งการบีบอัดของคุณไม่ควรเขียนโค้ดเฉพาะสำหรับลำดับที่ต้องทำดังกล่าว
- ผลลัพธ์ของโปรแกรมของคุณควรผ่าน Twitter และไม่ได้รับอันตราย ฉันไม่มีรายการของตัวละครที่แน่นอนที่รองรับ แต่พยายามติดกับตัวอักษรตัวเลขสัญลักษณ์และเครื่องหมายวรรคตอน และหลีกเลี่ยงอักขระควบคุมรวมอักขระเครื่องหมาย BIDI หรือสิ่งแปลก ๆ เช่นนั้น
- คุณสามารถส่งมากกว่าหนึ่งรายการ
เกณฑ์การตัดสิน
นี่คือการประกวดความนิยม (เช่น net upvotes ส่วนใหญ่ชนะ) แต่ผู้ลงคะแนนจะได้รับการกระตุ้นให้พิจารณาสิ่งต่อไปนี้:
ความถูกต้อง
- คุณยังจำเพลงหลังจากที่ถูกบีบอัดได้หรือไม่?
- มันฟังดูดีหรือไม่?
- คุณยังสามารถรับรู้ถึงการเล่นเครื่องดนตรีชนิดใดได้บ้าง?
- คุณยังจำเนื้อเพลงได้ไหม? (อาจเป็นไปไม่ได้ แต่มันจะน่าประทับใจถ้าใครทำสำเร็จ)
ความซับซ้อน
การเลือกเพลงตัวอย่างมีความสำคัญที่นี่
- [เพิ่มวันที่ 24 เมษายน]ความท้าทายนี้จะง่ายที่สุดด้วย MIDI หรือรูปแบบที่คล้ายกัน อย่างไรก็ตามหากคุณใช้ความพยายามอย่างพิเศษเพื่อให้มันทำงานกับฟอร์แมทรูปแบบของ Waveform ได้นั่นก็สมควรที่จะได้รับเครดิตเพิ่ม
- โครงสร้างคืออะไร แน่นอนว่าคุณสามารถตอบสนองความต้องการในหนึ่งนาทีโดยเพียงแค่ทำซ้ำสี่มาตรการเดียวกันจำนวนครั้งโดยพลการ แต่โครงสร้างเพลงที่ซับซ้อนมากขึ้นสมควรได้รับคะแนนมากขึ้น
- ฟอร์แมตสามารถจัดการโน้ตจำนวนมากที่เล่นในคราวเดียวได้หรือไม่?
รหัส
- ทำให้สั้นและง่ายที่สุด อย่างไรก็ตามนี่ไม่ใช่โค้ดกอล์ฟดังนั้นการอ่านจึงมีความสำคัญมากกว่าจำนวนตัวอักษร
- อัลกอริทึมที่ซับซ้อนและชาญฉลาดก็โอเคเช่นกันตราบใดที่พวกเขาได้รับการพิสูจน์ด้วยคุณภาพผลลัพธ์ที่ได้รับการปรับปรุง