আপনার শরীর তৈরি কোষ দিয়ে, আর সেই কোষগুলোর ভেতরে থাকে DNA. এই কোষগুলো নিয়মিত পুরনো হয়ে যায় এবং বদলে ফেলা দরকার হয়, যা তারা কন্যা কোষে ভাগ হয়ে সম্পন্ন করে। আসলে, গড়ে একজন মানুষের শরীরে সারা জীবনে প্রায় ১০০ কোটি কোটি কোষ বিভাজন ঘটে!
কোষ বিভক্ত হলে তাদের DNA-ও প্রতিলিপিত হয়। কখনও কখনও এই প্রক্রিয়ার মধ্যেই ভুল ঘটে যায় এবং DNA-র একেকটি টুকরোয় ভুল তথ্য এনকোড হয়ে যায়। যদি আমরা DNA-র দুটি স্ট্র্যান্ডের তুলনা করি এবং তাদের মধ্যেকার পার্থক্য গুনে দেখি, তাহলে বোঝা যায় কতগুলো ভুল ঘটেছে। একেই বলা হয় "হ্যামিং দূরত্ব"।
হ্যামিং দূরত্ব শুধু জীববিজ্ঞানেই নয়, বিজ্ঞানের অনেক ক্ষেত্রেই কাজে লাগে, তাই শব্দটি চেনা থাকলে ভালো হয় :)
দুটি DNA স্ট্র্যান্ডের মধ্যে হ্যামিং দূরত্ব হিসাব করুন।
আমরা DNA পড়ি C, A, G আর T অক্ষর দিয়ে। দুটি স্ট্র্যান্ড দেখতে এমন হতে পারে:
GAGCCTACTAACGGGAT
CATCGTAATGACGGCCT
^ ^ ^ ^ ^ ^^
এদের মধ্যে ৭টি পার্থক্য আছে, তাই হ্যামিং দূরত্ব ৭।
হ্যামিং দূরত্ব শুধু সমান দৈর্ঘ্যের সিকোয়েন্সের ক্ষেত্রেই সংজ্ঞায়িত, তাই ভিন্ন দৈর্ঘ্যের সিকোয়েন্সের মধ্যে এটি হিসাব করার চেষ্টা কাজ করবে না।
সিকোয়েন্সগুলো সমান দৈর্ঘ্যের না হলে {error, badarg} টাপল রিটার্ন করুন। অন্যথায় কেবল ইন্টিজারটি রিটার্ন করুন।
Exercism-এ সাইন আপ করুন, Erlang ট্র্যাকের 85টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।