चुनौती:
आपकी चुनौती (आपको इसे स्वीकार करने के लिए चुनना चाहिए) 5MB " विलियम शेक्सपियर की पूरी कृतियाँ" को संपीड़ित और डिकम्पोज करना है जैसा कि यहां पाया गया है: http://www.gutenberg.org/cache/epub/100/pg100.txt
(MD5: a810f89e9f8e213aebd06b9f8c5157d8
)
नियम:
- आपको इनपुट के माध्यम से और आउटपुट के माध्यम से लेना होगा ...
STDIN
STDOUT
- ... और आपको इनपुट के लिए एक समान विघटित परिणाम प्रदान करना होगा ।
- (यह कहना है कि आपको ऊपर के समान एमडी 5 प्राप्त करने में सक्षम होना चाहिए ।)
cat inpt.txt | ./cmprss | ./dcmpress | md5
- (के माध्यम से कुछ भी
STDERR
त्याग किया जाना है।)
- (यह कहना है कि आपको ऊपर के समान एमडी 5 प्राप्त करने में सक्षम होना चाहिए ।)
आपको अपने कुल स्रोत कोड के लिए 2048 से कम वर्णों का उपयोग करना होगा ।- (यह वह जगह है नहीं कोड गोल्फ। आप कर रहे हैं नहीं स्रोत-कोड की लंबाई के आधार रन बनाए जा रहा है। यह
हैकुछ ऐसी चीज़ें परिमित रखने के लिए शासन था।) (यदि आपने इसे अलग कर दिया है तो सभी स्रोत कोड की संक्षिप्त लंबाई लें।)
- (यह वह जगह है नहीं कोड गोल्फ। आप कर रहे हैं नहीं स्रोत-कोड की लंबाई के आधार रन बनाए जा रहा है। यह
- आप चाहिए भी (सैद्धांतिक) इसी तरह की प्रक्रिया सादे-पाठ आदानों करने में सक्षम हो।
- (उदाहरण के लिए हार्ड कोडिंग एक तंत्र जो केवल उपलब्ध शेक्सपियर इनपुट को आउटपुट करने में सक्षम है, अस्वीकार्य है।)
- (अन्य दस्तावेजों का संकुचित आकार अप्रासंगिक है - बशर्ते कि विघटित परिणाम वैकल्पिक इनपुट के समान हो।)
- आप भाषा के किसी भी विकल्प का उपयोग कर सकते हैं।
- (उदा। का उपयोग कर
awk
और संपीड़ित का उपयोग करने के लिए स्वतंत्र महसूस करेंjava
)
- (उदा। का उपयोग कर
- आप दो अलग-अलग प्रोग्राम लिख सकते हैं या उन्हें कृपया "स्विच" के कुछ रूप के साथ जोड़ सकते हैं।
- (संपीड़न और विघटन मोड दोनों को कैसे लागू किया जाए, इसके स्पष्ट प्रदर्शन होने चाहिए)
- आप किसी भी बाहरी कमांड (जैसे के माध्यम से ) का उपयोग नहीं कर सकते हैं
exec()
।- (यदि आप एक शेल भाषा का उपयोग कर रहे हैं - क्षमा करें। आपको बिल्ट-इन के साथ करना होगा। शेयरिंग और आनंद के लिए "अस्वीकार्य" उत्तर पोस्ट करने के लिए आपका स्वागत है - लेकिन इसका निर्णय नहीं किया जाएगा! )
- आप किसी भी अंतर्निहित या लाइब्रेरी प्रदान किए गए कार्यों का उपयोग नहीं कर सकते हैं, जिनका उद्देश्य उद्देश्य डेटा को संपीड़ित करना है (जैसे
gz
, आदि)- (एन्कोडिंग को बदलना इस संदर्भ में संपीड़न नहीं माना जाता है। कुछ विवेक को यहां लागू किया जा सकता है। प्रस्तुत करने में अपने समाधान की स्वीकार्यता पर बहस करने के लिए स्वतंत्र महसूस करें।)
- कृपया भाग लेने के लिए चुनने के लिए मज़े करने की कोशिश करें!
सभी अच्छी प्रतियोगिताओं में जीत की एक उद्देश्यपूर्ण परिभाषा होती है; Ergo:
- बशर्ते सभी नियमों का पालन किया जाए, सबसे छोटा संपीड़ित उत्पादन (
STDOUT
बाइट्स में) जीतता है।- (अपने उत्पादन की रिपोर्ट कृपया
./cmprss | wc -c
)
- (अपने उत्पादन की रिपोर्ट कृपया
- ड्रा (समान आउटपुट आकार) की स्थिति में, अधिकांश समुदाय अप-वोटेड जीतता है।
- दूसरे ड्रा (समान समुदाय अप-वोट) की स्थिति में, मैं एक विजेता को पूरी तरह से व्यक्तिपरक परीक्षा के लालित्य और शुद्ध प्रतिभा के आधार पर चुनूंगा।
;-)
कैसे जमा करें:
कृपया इस टेम्प्लेट का उपयोग करके अपनी प्रविष्टि को प्रारूपित करें:
<language>, <compressed_size>
-----------------------------
<description> (Detail is encouraged!)
<CODE...
...>
<run instructions>
मैं पाठकों और सबमिटरों को टिप्पणियों के माध्यम से समझाने के लिए प्रोत्साहित करूंगा - मेरा मानना है कि लोगों के लिए कोडगुल्फ़.स्टैक के माध्यम से सीखने और बेहतर प्रोग्रामर बनने का वास्तविक अवसर है।
जीतना:
मैं जल्द ही छुट्टी पर हूं: मैं अगले कुछ हफ्तों में सबमिशन की निगरानी कर सकता हूं (या नहीं कर सकता हूं) और 19 सितंबर को चुनौती को बंद कर दूंगा। मुझे उम्मीद है कि यह लोगों को सोचने और प्रस्तुत करने का एक अच्छा अवसर प्रदान करता है - और तकनीकों और विचारों के सकारात्मक बंटवारे के लिए।
यदि आपने भाग लेने (पाठक या प्रस्तुतकर्ता के रूप में) से कुछ नया सीखा है तो कृपया प्रोत्साहन की टिप्पणी छोड़ दें।
code-challenge
।