Hamming দূরত্ব সমান দৈর্ঘ্যের দুটি স্ট্রিং মধ্যে অবস্থানের যা সংশ্লিষ্ট চিহ্ন ভিন্ন সংখ্যা।
দিন P
দৈর্ঘ্যের একটি বাইনারি স্ট্রিং হতে n
এবং T
দৈর্ঘ্যের একটি বাইনারি স্ট্রিং হতে 2n-1
। বাম থেকে ডানে ক্রমান্বয়ে এবং প্রতিটি- দৈর্ঘ্যের স্তরগুলির n
মধ্যে হামিংয়ের দূরত্বগুলি গণনা করতে পারি এবং সেগুলি একটি অ্যারে (বা তালিকা) এ রাখতে পারি।P
n
T
উদাহরণ হ্যামিং দূরত্ব ক্রম
যাক P = 101
এবং T = 01100
। এই জুটি থেকে আপনি হ্যামিং দূরত্বের ক্রমটি হলেন 2,2,1
।
ঘনিষ্ঠতার সংজ্ঞা
এখন আসুন হামিংয়ের দূরত্বের দুটি ক্রম বিবেচনা করি। বলুন x = (0, 2, 2, 3, 0)
এবং y = (2, 1, 4, 4, 2)
উদাহরণ হিসাবে। আমরা বলতে x
এবং y
হয় close
যদি y <= x <= 2*y
বা যদি x <= y <= 2*x
। এখানে স্কেলারের গুণ এবং বৈষম্যকে মৌলিকভাবে নেওয়া হয়। যে দুটি ক্রমের জন্য বলে, A
এবং B
, A <= B iff A[i] <= B[i]
সব সূচকের জন্য i
।
নোট করুন যে হামিং দূরত্বের ক্রমগুলি তাদের তুলনা করার এই পদ্ধতিতে আংশিক ক্রম গঠন করে। অন্য কথায়, অনেকগুলি ক্রম ক্রমগুলি একে অপরের চেয়ে বড় বা সমান বা কম বা সমান নয়। উদাহরণস্বরূপ (1,2)
এবং (2,1)
।
সুতরাং উপরের উদাহরণটি ব্যবহার করে (0, 2, 2, 3, 0) <= 2*(2, 1, 4, 4, 2) = (4, 2, 8, 8, 4)
তবে এর (0, 2, 2, 3, 0)
চেয়ে বড় নয় (2, 1, 4, 4, 2)
। এর (2, 1, 4, 4, 2)
চেয়ে ছোট বা সমানও নয় 2*(0, 2, 2, 3, 0) = (0, 4, 4, 6, 0)
। ফলস্বরূপ x
এবং y
একে অপরের কাছাকাছি হয় না।
কার্য
বৃদ্ধির n
থেকে শুরু n=1
, বাইনারি স্ট্রিং সব সম্ভব জোড়া বিবেচনা P
দৈর্ঘ্যের n
এবং T
দৈর্ঘ্য 2n-1
। আছে 2^(n+2n-1)
এমন জোড়া তাই Hamming দূরত্ব অনেক সিকোয়েন্স। তবে এই সিকোয়েন্সগুলির অনেকগুলি অভিন্ন হবে। কাজটি হ্যামিং দূরত্বের সিকোয়েন্সগুলির বৃহত্তম সেটটির আকার সন্ধান করা যাতে কোনও দুটি ক্রম একে অপরের কাছাকাছি না থাকে।
আপনার কোডটির মান অনুযায়ী এক নম্বর আউটপুট করা উচিত n
।
স্কোর
আপনার স্কোরটি বিস্তৃতভাবে বলছে যে n
আপনার কোডটি আমার মেশিনে 5 মিনিটের মধ্যে পৌঁছায় (তবে পড়ুন)। সময়টি মোট চলমান সময়ের জন্য, কেবল সেই সময়ের জন্য নয় n
।
অপ-অনুকূল উত্তরের জন্য স্কোর দেওয়ার জন্য, কারণ সর্বোত্তম উত্তরগুলি খুঁজে পাওয়া শক্ত হতে পারে বলে আমাদের কিছুটা সূক্ষ্ম স্কোরিং সিস্টেমের প্রয়োজন হবে। আপনার স্কোরটি সর্বোচ্চ মান n
যার জন্য এটির চেয়ে সমান যে কোনও আকারের জন্য আর কোনও উচ্চতর সঠিক উত্তর পোস্ট করেনি। উদাহরণস্বরূপ, আপনি যদি আউটপুট 2, 4, 21
এবং অন্য কেউ আউটপুট দেন 2, 5, 15
তবে 1
অন্য কারোর কাছে এর চেয়ে ভাল উত্তর হওয়ায় আপনি কেবল স্কোর করবেন n = 2
। আপনি যদি আউটপুট দেন 2, 5, 21
তবে আপনি 3
অন্য কারও আউটপুট কী তা বিবেচনা করেই স্কোর করবেন কারণ এই উত্তরগুলি সমস্ত অনুকূল। স্পষ্টত যদি আপনার কাছে সর্বোত্তম উত্তর থাকে তবে n
আপনি পোস্ট করা সর্বাধিকের জন্য স্কোর পাবেন । তবে, আপনার উত্তরটি সর্বোত্তম না হলেও, অন্য কেউ এটি পরাজিত করতে না পারলে আপনি এখনও স্কোরটি পেতে পারেন।
উত্তর এবং কাজের উদাহরণ উদাহরণ
(এই উত্তরগুলি এখনও চেক করা হয়নি Independent স্বতন্ত্র যাচাই কৃতজ্ঞতার সাথে গ্রহণ করা হবে))
ইটিএইচ প্রডাকশনগুলিতে ধন্যবাদ:
- n = 1 দেয় 2।
- n = 2 দেয় 5।
- n = 3 21 দেয়।
আসুন n = 2
আরও বিস্তারিতভাবে তাকান। এক্ষেত্রে হামিং দূরত্বের ক্রমগুলির সম্পূর্ণ তালিকা (এখানে টিপলস দ্বারা উপস্থাপিত) হ'ল:
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
আমরা দেখতে পাচ্ছি যে (0,0)
এটি অন্য কোনও টিউপের কাছাকাছি নয়। বস্তুত আমরা যদি নিতে (0, 0)
, (0, 1)
, (1, 0)
, (2, 1)
, (1,2)
ঐ tuples তত্কালীন কেউ অন্যদের কোনো কাছাকাছি। এই স্কোর দেয় 5
জন্য n = 2
।
জন্য n = 3
স্বতন্ত্র Hamming দূরত্ব ক্রম সম্পূর্ণ তালিকা হল:
[(0, 0, 0), (0, 0, 1), (0, 1, 1), (0, 1, 2), (0, 1, 3), (0, 2, 1), (0, 2, 2), (0, 2, 3), (0, 3, 0), (0, 3, 1), (1, 0, 0), (1, 0, 1), (1, 0, 2), (1, 1, 0), (1, 1, 1), (1, 1, 2), (1, 1, 3), (1, 2, 0), (1, 2, 1), (1, 2, 2), (1, 2, 3), (1, 3, 0), (1, 3, 1), (1, 3, 2), (2, 0, 1), (2, 0, 2), (2, 0, 3), (2, 1, 0), (2, 1, 1), (2, 1, 2), (2, 1, 3), (2, 2, 0), (2, 2, 1), (2, 2, 2), (2, 2, 3), (2, 3, 1), (2, 3, 2), (2, 3, 3), (3, 0, 2), (3, 0, 3), (3, 1, 0), (3, 1, 1), (3, 1, 2), (3, 2, 0), (3, 2, 1), (3, 2, 2), (3, 3, 2), (3, 3, 3)]
এই 48
ক্রমগুলির মধ্যে, আমরা আকারের একটি সেট বাছাই করতে পারি 21
যাতে সেই সেটের কোনও জুটি একে অপরের কাছাকাছি না থাকে।
ভাষা ও গ্রন্থাগার
আপনার পছন্দ মতো যে কোনও উপলভ্য ভাষা এবং গ্রন্থাগার ব্যবহার করতে পারেন। যেখানে সম্ভব, আপনার কোডটি চালাতে সক্ষম হওয়াই ভাল হবে সুতরাং দয়া করে লিনাক্সে কীভাবে আপনার কোডটি চালানো / সংকলন করা যায় তার জন্য সম্পূর্ণ ব্যাখ্যা অন্তর্ভুক্ত করুন যদি সম্ভব হয় তবে।
আমার মেশিনের সময়গুলি আমার -৪-বিট মেশিনে চালিত হবে। এটি 8 জিবি র্যাম, এএমডি এফএক্স-8350 আট-কোর প্রসেসর এবং র্যাডিয়ন এইচডি 4250 সহ একটি স্ট্যান্ডার্ড উবুন্টু ইনস্টল This এর অর্থ এটিও আপনার কোডটি চালাতে সক্ষম হওয়া দরকার।
শীর্ষস্থানীয় উত্তর
- ক্রিশ্চিয়ান সিভার্স দ্বারা 2, 5, 21, 83, 361 এর জন্য 4 স্কোর । সি ++
- Fəˈnɛtɪk দ্বারা 2, 5, 21, 83, 372 এর জন্য 5 স্কোর । জাভাস্ক্রিপ্ট