আমি একটি ছোট এম্বেড থাকা সিস্টেমে চিত্রের ডেটাতে একটি 5-ক্রস মিডিয়ান ফিল্টারটির একটি প্রকরণ ব্যবহার করি
x
x x x
x
অ্যালগরিদমটি সত্যই সহজ: 5 স্বাক্ষরযুক্ত পূর্ণসংখ্যা মানগুলি পড়ুন, সর্বোচ্চ 2 পান, সেগুলি সম্পর্কে কিছু গণনা করুন এবং স্বাক্ষরবিহীন পূর্ণসংখ্যার ফলাফলটি আবার লিখুন।
কী সুন্দর তা হ'ল 5 পূর্ণসংখ্যার ইনপুট মানগুলি 0-10-এর মধ্যে থাকে। গণনা করা পূর্ণসংখ্যার মানটি 0-2-এর মধ্যেও রয়েছে!
প্রোফাইলিংয়ের মাধ্যমে, আমি বুঝতে পেরেছি যে সবচেয়ে বড় দুটি নম্বর পাওয়া বাধা হ'ল তাই আমি এই অংশটি দ্রুত করতে চাই। এই নির্বাচনটি সম্পাদন করার দ্রুততম উপায় কী?
বর্তমান অ্যালগরিদম 5 নম্বর এবং এইচডাব্লু-সমর্থিত সিএলজেড ফাংশন দ্বারা প্রদত্ত অবস্থানে 1 সহ 32 বিট মাস্ক ব্যবহার করে।
আমার বলা উচিত যে সিপিইউ একটি স্বত্বাধিকারী, আমার সংস্থার বাইরে উপলভ্য নয়। আমার সংকলকটি জিসিসি তবে এই সিপিইউয়ের জন্য তৈরি টেইলার।
আমি যদি দেখার জন্য সারণিটি ব্যবহার করতে পারি তবে এটি সনাক্ত করার চেষ্টা করেছি তবে আমি ব্যবহার করতে পারি এমন কী তৈরি করতে আমি ব্যর্থ হয়েছি।
আমার কাছে ইনপুটটির জন্য সংমিশ্রণ রয়েছে তবে অর্ডারটি গুরুত্বপূর্ণ নয়, যেমনটি একই ।[5,0,0,0,5]
[5,5,0,0,0]
এটি ঘটে যে নীচের হ্যাশ-ফাংশনটি সংঘর্ষ ছাড়াই একটি নিখুঁত হ্যাশ তৈরি করে!
def hash(x):
h = 0
for i in x:
h = 33*h+i
return h
তবে হ্যাশটি বিশাল এবং এটি ব্যবহারের জন্য যথেষ্ট মেমরি নেই।
আমি কি আরও ভাল অ্যালগরিদম ব্যবহার করতে পারি? লুক-টেবিল ব্যবহার করে এবং কী তৈরি করা কি আমার সমস্যার সমাধান করা সম্ভব?
hash
ইতিমধ্যে আরও অপারেশন করা হয়। পদ্ধতির পরবর্তী কলগুলি কি সম্পর্কিত, উদাহরণস্বরূপx
ম্যাট্রিক্স সারি-দ্বারা-সারি মধ্য দিয়ে কেন্দ্রীয় স্থানান্তরিত হয়?