Hamming

Hamming

आसान

परिचय

आपका शरीर ऐसी कोशिकाओं से बना है जिनमें DNA होता है। ये कोशिकाएँ नियमित रूप से घिस जाती हैं और उन्हें बदलने की ज़रूरत पड़ती है। वे संतान कोशिकाओं में विभाजित होकर यह काम करती हैं। वास्तव में, एक औसत मानव शरीर में जीवनभर में लगभग 10 क्वाड्रिलियन कोशिका विभाजन होते हैं!

जब कोशिकाएँ विभाजित होती हैं, तो उनके DNA की भी प्रतिकृति बनती है। कभी-कभी इस प्रक्रिया में गलतियाँ हो जाती हैं और DNA के कुछ हिस्सों में गलत जानकारी भर जाती है। अगर हम DNA की दो शृंखलाओं की तुलना करें और उनके बीच के अंतर गिनें, तो पता चलता है कि कितनी गलतियाँ हुईं। इसे हैमिंग दूरी कहते हैं।

हैमिंग दूरी केवल जीव विज्ञान ही नहीं, विज्ञान के कई क्षेत्रों में काम आती है। इसलिए इस शब्द से परिचित होना अच्छा है :)

निर्देश

दो DNA स्ट्रैंड के बीच हैमिंग दूरी की गणना कीजिए।

हम DNA को C, A, G और T अक्षरों की मदद से पढ़ते हैं। दो स्ट्रैंड कुछ ऐसे दिख सकते हैं:

GAGCCTACTAACGGGAT
CATCGTAATGACGGCCT
^ ^ ^  ^ ^    ^^

इनमें 7 अंतर हैं, इसलिए हैमिंग दूरी 7 है।

कार्यान्वयन नोट्स

हैमिंग दूरी केवल समान लंबाई वाले अनुक्रमों के लिए परिभाषित है, इसलिए अलग-अलग लंबाई वाले अनुक्रमों के बीच इसकी गणना करने की कोशिश काम नहीं करेगी।

रजिस्टर

रजिस्टर उपयोग टाइप विवरण
$a0 इनपुट एड्रेस पहली नल-टर्मिनेटेड स्ट्रिंग
$a1 इनपुट एड्रेस दूसरी नल-टर्मिनेटेड स्ट्रिंग
$v0 आउटपुट पूर्णांक हैमिंग दूरी
$t0-9 अस्थायी कोई भी अस्थायी भंडारण के लिए
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
MIPS Assembly Exercism

Hamming शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और MIPS Assembly को 70 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।