अस्वीकरण: मैं गणित या कंप्यूटर विज्ञान शिक्षक नहीं हूं, इसलिए मेरे द्वारा उपयोग की जाने वाली सभी शर्तें तकनीकी नहीं हैं। ऐसा इसलिए है क्योंकि मैं सादे अंग्रेजी में सब कुछ समझाने की कोशिश कर रहा हूं क्योंकि लोग गणित के साथ काफी सहज नहीं हैं। ऐसा कहा जा रहा है कि कुछ गणित शामिल हैं, और यह अपरिहार्य है। गणित geeks, टिप्पणियों में सही या बेहतर व्याख्या करने के लिए स्वतंत्र महसूस करें, लेकिन कृपया, हमारे बीच गणितीय रूप से विघटित के लिए यह आसान रखें।
द्वारा छवि इयान रूओत्साला
एल्गोरिदम क्या है?
'एल्गोरिदम' शब्द में 'बीजगणित' के समान व्युत्पत्ति है, सिवाय इसके कि यह अरबी गणितज्ञ स्वयं, अल-ख्वारिज्मी (केवल एक दिलचस्प कहानी) को संदर्भित करता है। हमारे बीच गैर-प्रोग्रामर के लिए एक एल्गोरिदम, निर्देशों का एक सेट है जो एक इनपुट लेता है, ए, और एक आउटपुट प्रदान करता है, बी, जो किसी भी तरीके से शामिल डेटा को बदलता है। एल्गोरिदम में विभिन्न प्रकार के अनुप्रयोग होते हैं। गणित में, वे अधिक उन्नत चीजों के बीच डेटा सेट में बिंदुओं से कार्यों की गणना करने में मदद कर सकते हैं। प्रोग्रामिंग में अपने उपयोग के अलावा, वे फ़ाइल संपीड़न और डेटा एन्क्रिप्शन जैसी चीजों में प्रमुख भूमिका निभाते हैं।
निर्देशों का एक मूल सेट
मान लीजिए कि आपका दोस्त आपको किराने की दुकान में मिल रहा है और आप उसे अपने प्रति मार्गदर्शन कर रहे हैं। आप "दायीं तरफ के दरवाजों से गुजरते हैं" जैसे चीजें कहते हैं, "बाईं ओर मछली अनुभाग पास करें," और "यदि आप डेयरी देखते हैं, तो आपने मुझे पास कर दिया।" एल्गोरिदम इस तरह काम करते हैं। हम उन मापदंडों के आधार पर निर्देशों को चित्रित करने के लिए फ्लोचार्ट का उपयोग कर सकते हैं जिन्हें हम समय से पहले जानते हैं या प्रक्रिया के दौरान पता लगाते हैं।
स्टार्ट से, आप पथ को नीचे ले जाएंगे, और इसके परिणामस्वरूप आप अंत परिणाम के लिए "प्रवाह" का पालन करेंगे। Flowcharts दृश्य उपकरण हैं जो कंप्यूटर द्वारा उपयोग किए गए निर्देशों के एक समूह का अधिक प्रतिनिधित्व कर सकते हैं। इसी प्रकार, एल्गोरिदम अधिक गणित-आधारित मॉडल के साथ समान मदद करते हैं।
रेखांकन
चलिए विभिन्न तरीकों को चित्रित करने के लिए ग्राफ का उपयोग करते हैं जो हम दिशा दे सकते हैं।
विधि 1
हम इसे अंक की एक श्रृंखला के रूप में प्रस्तुत कर सकते हैं, और जानकारी ग्राफ = {(x1, y1), (x2, y2), …, (xn, yn)} के मानक रूप का पालन करेगी।
graph = {(0,0), (3,0), (3,3), (5,5), (7,10), (8,7), (9,4), (10,1)}
प्रत्येक बिंदु को प्लॉट करना एक दूसरे के बाद, और उन्हें पिछले बिंदु से कनेक्ट करना बहुत आसान है। हालांकि, एक ग्राफ की कल्पना करें जिसमें एक हज़ार अंक या एकाधिक सेगमेंट हैं जो हर तरह से जा रहे हैं। उस सूची में बहुत सारे डेटा होंगे, है ना? और फिर प्रत्येक को एक साथ जोड़ने के लिए, एक दर्द हो सकता है।
विधि 2
एक और चीज जो हम कर सकते हैं वह एक शुरुआती बिंदु, उसके और अगले बिंदु के बीच की रेखा की ढलान है, और इंगित करता है कि ग्राफ़ = {(प्रारंभ बिंदु), [एम 1, एक्स 1, एच 1 के मानक रूप का उपयोग करते हुए अगले बिंदु की अपेक्षा करें। ], …, [एमएन, एक्सएन, एचएन]}। यहां, परिवर्तनीय 'एम' रेखा की ढलान का प्रतिनिधित्व करता है, 'एक्स' गिनने की दिशा का प्रतिनिधित्व करता है (चाहे एक्स या वाई), और 'एच' आपको बताता है कि कैसे कई ने कहा दिशा में गिनने के लिए। आप प्रत्येक आंदोलन के बाद एक बिंदु साजिश भी याद कर सकते हैं।
graph = {(0,0), [0,x,3], [0,y,3], [1,x,2], [2.5,x,2], [-3,x,1], [-3,x,1], [-3,x,1]}
आप एक ही ग्राफ के साथ खत्म हो जाएगा। आप देख सकते हैं कि इस अभिव्यक्ति में अंतिम तीन शब्द समान हैं, इसलिए हम इसे किसी भी तरह से "तीन बार दोहराएं" कहकर इसे कम करने में सक्षम हो सकते हैं। आइए मान लें कि जब भी आप चर 'आर' दिखाई देते हैं, तो इसका मतलब है कि आखिरी चीज़ दोहराना है। हम यह कर सकते हैं:
graph = {(0,0), [0,x,3], [0,y,3], [1,x,2], [2.5,x,2], [-3,x,1], [R=2]}
क्या होगा यदि व्यक्तिगत अंक वास्तव में कोई फर्क नहीं पड़ता है, और केवल ग्राफ ही करता है? हम उन अंतिम तीन खंडों को समेकित कर सकते हैं जैसे:
graph = {(0,0), [0,x,3], [0,y,3], [1,x,2], [2.5,x,2], [-3,x,3]}
यह चीजों को थोड़ा सा छोटा करता है जहां से वे पहले थे।
विधि 3
आइए इसे एक और तरीके से करने का प्रयास करें।
y=0, 0≤x≤3 x=0, 0≤y≤3 y=x, 3≤x≤5 y=2.5x-7.5, 5≤x≤7 y=-3x+29, 7≤x≤8 y=-3x+29, 8≤x≤9 y=-3x+29, 9≤x≤10
यहां हमारे पास शुद्ध बीजगणितीय शर्तों में है। एक बार फिर, यदि अंक स्वयं कोई फर्क नहीं पड़ता और केवल ग्राफ करता है, तो हम पिछले तीन वस्तुओं को समेकित कर सकते हैं।
y=0, 0≤x≤3 x=0, 0≤y≤3 y=x, 3≤x≤5 y=2.5x-7.5, 5≤x≤7 y=-3x+29, 7≤x≤10
अब, आप जिस विधि को चुनते हैं वह आपकी क्षमताओं पर निर्भर करता है। शायद आप गणित और ग्राफिंग के साथ महान हैं, इसलिए आप अंतिम विकल्प चुनते हैं। शायद आप नेविगेट करने में अच्छे हैं, इसलिए आप दूसरा विकल्प चुनते हैं। कंप्यूटर के दायरे में, हालांकि, आप कई अलग-अलग प्रकार के कार्य कर रहे हैं और कंप्यूटर की क्षमता वास्तव में परिवर्तित नहीं होती है। इसलिए, एल्गोरिदम को उनके द्वारा पूरा किए गए कार्यों के लिए अनुकूलित किया जाता है।
ध्यान देने योग्य एक और महत्वपूर्ण बात यह है कि प्रत्येक विधि एक कुंजी पर निर्भर करती है। निर्देशों का प्रत्येक सेट बेकार है जबतक कि आप जानते हैं कि उनके साथ क्या करना है। यदि आप नहीं जानते कि आपको प्रत्येक बिंदु को प्लॉट करना और बिंदुओं को जोड़ना है, तो बिंदुओं का पहला सेट कुछ भी नहीं है। जब तक आप दूसरी विधि में प्रत्येक वैरिएबल का अर्थ नहीं जानते हैं, तब तक आप नहीं जानते कि उन्हें कैसे लागू किया जाए, सिफर की कुंजी की तरह। वह कुंजी एल्गोरिदम का उपयोग करने का एक अभिन्न हिस्सा भी है, और अक्सर, वह कुंजी समुदाय में या "मानक" के माध्यम से मिलती है।
फ़ाइल संपीड़न
जब आप.zip फ़ाइल डाउनलोड करते हैं, तो आप सामग्री निकालते हैं ताकि आप इसके अंदर जो कुछ भी उपयोग कर सकें।आजकल, अधिकांश ऑपरेटिंग सिस्टम.zip फ़ाइलों में गोता लगा सकते हैं जैसे वे सामान्य फ़ोल्डर्स थे, पृष्ठभूमि में सब कुछ कर रहे थे। एक दशक पहले मेरी विंडोज 95 मशीन पर, मुझे फाइलनामों के अलावा कुछ और देखने से पहले मैन्युअल रूप से सब कुछ निकालना पड़ा। ऐसा इसलिए है क्योंकि डिस्क पर.zip फ़ाइल के रूप में संग्रहीत किया गया था उपयोग करने योग्य रूप में नहीं था। एक पुल आउट सोफे के बारे में सोचो। जब आप इसे बिस्तर के रूप में उपयोग करना चाहते हैं, तो आपको कुशन को हटाना होगा और इसे प्रकट करना होगा, जो अधिक जगह लेता है। जब आपको इसकी आवश्यकता नहीं होती है, या आप इसे परिवहन करना चाहते हैं, तो आप इसे वापस फोल्ड कर सकते हैं।
संपीड़न एल्गोरिदम विशेष रूप से उन फ़ाइलों के प्रकारों के लिए समायोजित और अनुकूलित किए जाते हैं जिन्हें वे लक्षित करते हैं। ऑडियो स्वरूप, उदाहरण के लिए, प्रत्येक डेटा को स्टोर करने के लिए एक अलग तरीका का उपयोग करते हैं, जो ऑडियो कोडेक द्वारा डीकोड किए जाने पर, मूल तरंग के समान ध्वनि फ़ाइल प्रदान करेगा। उन अंतरों के बारे में अधिक जानकारी के लिए, हमारे पिछले लेख देखें, उन सभी ऑडियो प्रारूपों के बीच मतभेद क्या हैं? लापरवाही ऑडियो प्रारूप और.zip फ़ाइलों में एक बात आम है: वे दोनों डिकंप्रेशन की प्रक्रिया के बाद मूल डेटा को अपने सटीक रूप में प्रस्तुत करते हैं। लापरवाही ऑडियो कोडेक्स डिस्क स्थान को बचाने के लिए अन्य साधनों का उपयोग करते हैं, जैसे कि आवृत्तियों को ट्रिम करना जो मानव कानों द्वारा सुनाई जा सकती है और कुछ विवरणों से छुटकारा पाने के लिए अनुभागों में तरंगों को चिकनाई कर सकती है। अंत में, जबकि हम वास्तव में एमपी 3 और सीडी ट्रैक के बीच अंतर को सुनने में सक्षम नहीं हो सकते हैं, निश्चित रूप से पूर्व में जानकारी की कमी है।
डेटा एन्क्रिप्शन
एल्गोरिदम गणितीय उपकरण हैं जो कंप्यूटर विज्ञान में विभिन्न प्रकार के उपयोग प्रदान करते हैं। वे एक प्रारंभ बिंदु और एक अंत बिंदु के बीच एक पथ प्रदान करने के लिए काम करते हैं, और इसके पालन के निर्देश प्रदान करते हैं। हमने जो हाइलाइट किया है उससे ज्यादा जानें? टिप्पणियों में अपनी व्याख्या साझा करें!