चुनौती
एक प्रोग्राम लिखें जो ASCII पाठ को दोषरहित और संकुचित करता है। केस-असंवेदनशील और विराम चिह्न-असंवेदनशील palindromes सहित, यह palindromes के साथ अच्छी तरह से काम करने के लिए विशेष होना चाहिए। सबसे छोटे स्रोत के साथ सबसे अच्छा संपीड़न जीतता है।
स्कोरिंग
total_bytes_saved / sqrt(program_size) - उच्चतम स्कोर जीत
total_bytes_savedनीचे के परीक्षण मामलों में कुल कितने बाइट्स हैं, जो संपीड़ित स्ट्रिंग्स मूल से अधिक हैं। program_sizeसंपीड़न और अपघटन दोनों कार्यक्रमों के स्रोत कोड के बाइट्स में आकार है। दोनों की जरूरत के बीच साझा किए गए कोड को केवल एक बार गिना जाना चाहिए।
उदाहरण के लिए, यदि 10 परीक्षण मामले हैं और 100 बाइट प्रोग्राम में 7 परीक्षण मामलों में 5 बाइट्स बचाए गए हैं, तो उनमें से 2 पर 10, लेकिन अंतिम परीक्षण का मामला 2 बाइट्स लंबा था, समाधान 5.3 स्कोर करेगा। ((7 * 5 + 10 * 2 - 2) / sqrt(100) = 5.3 )
परीक्षण के मामलों
tacocattoohottohoottodderasesareddotamanaplanacanalpanamawasitacaroracatisaw?BobIManAmRegalAGermanAmIDogeeseseeGodA Santa at NASAGo hang a salami! I'm a lasagna hog.
नियम
- मानक खामियां लागू होती हैं।
- संपीड़न को सभी मुद्रण योग्य ASCII (बाइट्स 32-126, समावेशी) टेक्स्ट स्ट्रिंग्स पर काम करना चाहिए, न कि केवल पैलिंड्रोम्स। यह वास्तव में किसी भी जानकारी के लिए अंतरिक्ष को बचाने के लिए नहीं है, हालांकि।
- आउटपुट बाइट्स या वर्णों का कोई भी क्रम हो सकता है, भले ही इसके कार्यान्वयन या आंतरिक प्रतिनिधित्व (स्ट्रिंग, सूचियां और सरणियाँ सभी निष्पक्ष खेल हों, उदाहरण के लिए)। यदि UTF-8 को एन्कोडिंग है, तो बाइट्स की गणना करें, वर्णों की नहीं। वाइड स्ट्रिंग्स (जैसे UTF-16 या UTF-32) को अनुमति नहीं दी जाती है जब तक कि संभवतः उपयोग किए गए एकमात्र कोडपॉइंट्स 0 और 255 के बीच न हों।
- संपीड़न / अपघटन निर्मित करने की अनुमति नहीं है।
हमारे अपने आनंद के लिए, अपने स्रोत कोड के साथ संपीड़ित तारों को पोस्ट करें।
अद्यतन 1: बेहतर संपीड़न के लिए अधिक वजन और आक्रामक गोल्फिंग को कम वजन देने के total_bytes_saved / program_sizeलिए स्कोरिंग से बदलाव किया गया total_bytes_saved / sqrt(program_size)। तदनुसार अपने स्कोर समायोजित करें।
अद्यतन 2:wasitacaroraratisaw? होना तय हैwasitacaroracatisaw?
[32-126]?
1000 *हिस्से की वास्तव में ज़रूरत है, और नहीं, मुझे नहीं लगता कि यह स्कोर को अधिक "संतोषजनक" महसूस करेगा;)
wasitacaroraratisaw?कि की एक प्रति है