संपीड़न संपीड़न [बंद]


20

इस चुनौती के लिए, आपको एक अंतर संपीड़ित करने की आवश्यकता है। एक अंतर कुछ डेटा है जो दो तारों के बीच अंतर का प्रतिनिधित्व करता है। इस चुनौती के लिए, आपको एक या अधिक कार्यक्रम प्रदान करने की आवश्यकता है:

  1. इनपुट Aऔर B, और आउटपुट एक अंतर,C
  2. इनपुट Aऔर C, और आउटपुटB
  3. इनपुट Bऔर C, और आउटपुटA

लक्ष्य के Cरूप में संभव के रूप में छोटे, अंतर बनाने के लिए है। अंतर कुछ भी हो सकता है: एक स्ट्रिंग, एक संख्या, डेटा का एक बूँद। हम सिर्फ आकार (बाइट्स की संख्या) के बारे में परवाह करते हैं।

मेरे पास 50 परीक्षण मामले हैं जो जीथब पर पाए जा सकते हैं । प्रत्येक परीक्षण के मामले में दो अलग-अलग URL होते हैं जो उन 2 फ़ाइलों की ओर इशारा करते हैं जिन्हें आपको अलग करने की आवश्यकता होती है। (ये परीक्षण मामले PPCG सदस्यों के गितूब प्रोफाइल से उत्पन्न हुए हैं। सभी को धन्यवाद!)

उपर्युक्त सभी तीन कार्यों को एक मिनट में संचालित कंप्यूटर (प्रत्येक परीक्षण मामले के लिए) पर चलना चाहिए।

आपका स्कोर सभी 50 भिन्न के कुल आकार (बाइट्स में) के बराबर है, कम बेहतर है। आपके प्रोग्राम में हार्डकोडिंग की अनुमति नहीं है (मैं हार्डकोडिंग को रोकने के लिए परीक्षण मामलों को बदलने का अधिकार सुरक्षित रखता हूं)। एक अंतर (जैसे diffutils) का उत्पादन करने वाले बिल्डरों की अनुमति नहीं है।


4
क्या वास्तव में एक अंतर है?
कॉनर ओ'ब्रायन 16

कुछ भी आप चाहते हैं कि वह वास्तव में हो। अनौपचारिक रूप से, इसकी एक स्ट्रिंग के बीच मतभेद का प्रतिनिधित्व करता है कि AऔरB
नाथन मेरिल

1
अधिक लिंक सड़ांध: 1-बेस लाइन इंडेक्स द्वारा टेस्ट केस जोड़े को क्रमांकित करना; टेस्ट केस के 3, 13, 14, 15, 16, 17, 18, 19, 20, 21 दोनों जोड़े 404 हैं। इनमें से, मैं हर दूसरे मामले को पुनः प्राप्त करने में कामयाब रहा।
एच वाल्टर्स

3
मैं इस सवाल को बंद कर रहा हूं क्योंकि यह काफी हद तक अनुत्तरित है और कई पुराने लिंक मैं परीक्षण मामलों के रूप में उपयोग कर रहा था अब काम नहीं करते हैं। यदि आप चाहें तो प्रश्न को अद्यतन करने और फिर से खोलने के लिए स्वतंत्र महसूस करें।
नाथन मेरिल

1
किया हुआ। GIST gist.github.com/sethhillbrand/64066935e3f8c0fac75d75edd43c9ef8 है दूसरी फ़ाइल परीक्षण मामलों की शेष 40 जोड़ियों का एक uuencoded संग्रह है।
सेठ १

जवाबों:


0

क्या मेरा उत्तर मान्य है?

set f [open commits.txt]
while {![eof $f]} {scan [gets $f] %s\ %s a b; puts [string compare $a $b]}
close $f

परीक्षण योग्य: http://www.tutorialspoint.com/execute_tcl_online.php?PID=0Bw_CjBb95KQMNmd4QkxvQUFsTnM


1
आपको कई कार्यक्रम (एक diffसमतुल्य और एक patchसमतुल्य) प्रदान करने की आवश्यकता है । यदि string compareतार अलग हो जाते हैं, तो यह "नो बिलिन" नियम का उल्लंघन करता है। यदि यह केवल तार की तुलना करता है (जैसा कि नाम से पता चलता है), यह एक पैच को फिर से बनाने के लिए पर्याप्त जानकारी नहीं छोड़ता है।

@ ais523: बिल्डिंस मैं इसे कमांड लाइन कमांड के रूप में समझता था। मुझे पता है कि string compareपेज बनाने के लिए जानकारी उत्पन्न नहीं होती है, लेकिन सवाल पूछने के लिए इसमें कोई जगह नहीं है।
सर्गिओल

प्रश्न से, "2. इनपुट ए और सी, और आउटपुट बी"। यह कुछ ऐसा है जो आपका प्रस्तुत कार्यक्रम नहीं कर सकता है, और वास्तव में कोई भी कार्यक्रम नहीं कर सकता है (क्योंकि इसमें पर्याप्त जानकारी नहीं है)।

@ ais523: ठीक है मुझे गलत समझा गया।
सर्गियोल

@ ais523: मुझे नहीं लगता कि आपका कथन सही है "वास्तव में कोई कार्यक्रम नहीं कर सकता"। यदि C A और B के बीच का अंतर है, तो C और A दिया जाता है, B गणना योग्य है। हो सकता है कि मैंने आपका सटीक बिंदु याद किया
सेठ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.