Hamming

Hamming

সহজ

ভূমিকা

আপনার শরীর তৈরি কোষ দিয়ে, আর সেই কোষগুলোর ভেতরে থাকে DNA. এই কোষগুলো নিয়মিত পুরনো হয়ে যায় এবং বদলে ফেলা দরকার হয়, যা তারা কন্যা কোষে ভাগ হয়ে সম্পন্ন করে। আসলে, গড়ে একজন মানুষের শরীরে সারা জীবনে প্রায় ১০০ কোটি কোটি কোষ বিভাজন ঘটে!

কোষ বিভক্ত হলে তাদের DNA-ও প্রতিলিপিত হয়। কখনও কখনও এই প্রক্রিয়ার মধ্যেই ভুল ঘটে যায় এবং DNA-র একেকটি টুকরোয় ভুল তথ্য এনকোড হয়ে যায়। যদি আমরা DNA-র দুটি স্ট্র্যান্ডের তুলনা করি এবং তাদের মধ্যেকার পার্থক্য গুনে দেখি, তাহলে বোঝা যায় কতগুলো ভুল ঘটেছে। একেই বলা হয় "হ্যামিং দূরত্ব"।

হ্যামিং দূরত্ব শুধু জীববিজ্ঞানেই নয়, বিজ্ঞানের অনেক ক্ষেত্রেই কাজে লাগে, তাই শব্দটি চেনা থাকলে ভালো হয় :)

নির্দেশনা

দুটি DNA স্ট্র্যান্ডের মধ্যে হ্যামিং দূরত্ব হিসাব করুন।

আমরা DNA পড়ি C, A, G আর T অক্ষর দিয়ে। দুটি স্ট্র্যান্ড দেখতে এমন হতে পারে:

GAGCCTACTAACGGGAT
CATCGTAATGACGGCCT
^ ^ ^  ^ ^    ^^

এদের মধ্যে ৭টি পার্থক্য আছে, তাই হ্যামিং দূরত্ব ৭।

ইমপ্লিমেন্টেশন নোট

হ্যামিং দূরত্ব শুধু সমান দৈর্ঘ্যের সিকোয়েন্সের ক্ষেত্রেই সংজ্ঞায়িত, তাই ভিন্ন দৈর্ঘ্যের সিকোয়েন্সের মধ্যে এটি হিসাব করার চেষ্টা কাজ করবে না।

রেজিস্টার

রেজিস্টার ব্যবহার টাইপ বিবরণ
$a0 ইনপুট অ্যাড্রেস প্রথম স্ট্রিং, null-terminated
$a1 ইনপুট অ্যাড্রেস দ্বিতীয় স্ট্রিং, null-terminated
$v0 আউটপুট ইন্টিজার হ্যামিং দূরত্ব
$t0-9 টেম্পোরারি যেকোনো সাময়িক স্টোরেজের জন্য
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
MIPS Assembly Exercism

Hamming শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, MIPS Assembly ট্র্যাকের 70টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।