আমি বুঝতে পেরেছি এটি পুরানো, তবে ভেবেছি আমার সমাধানে অবদান রাখব। সম্ভাব্য দুটি হ্যাশ সমন্বয় রয়েছে ^ এবং এইভাবে একটি জন্মদিনের প্যারাডক্সের 2 ^ 64 সম্ভাবনা। যদিও নীচের সমাধানটি সংঘর্ষের সম্ভাবনা দূর করবে না, এটি অবশ্যই খুব পরিমাণে ঝুঁকি হ্রাস করবে।
2^64 = 18,446,744,073,709,500,000 possible combinations
আমি যা করেছি তা হ'ল ইনপুট স্ট্রিংয়ের ভিত্তিতে কয়েকটি হ্যাশ একসাথে রেখেছি যাতে আপনি নিজের হ্যাশটিকে বিবেচনা করেন ...
সুতরাং এর জন্য আমার সিউডো কোডটি হ'ল:
Result = Hash(string) & Hash(Reverse(string)) & Hash(Length(string))
এটি একটি সংঘর্ষের ব্যবহারিক অসম্ভবতা। তবে আপনি যদি অতি অদ্ভুত হতে চান এবং এটিটি না ঘটতে পারেন, এবং সঞ্চয় স্থানটি কোনও সমস্যা নয় (না হয় চক্রের গণনাও) ...
Result = Hash(string) & Hash(Reverse(string)) & Hash(Length(string))
& Hash(Reverse(SpellOutLengthWithWords(Length(string))))
& Hash(Rotate13(string)) Hash(Hash(string)) & Hash(Reverse(Hash(string)))
ঠিক আছে, সবচেয়ে পরিষ্কার সমাধান নয়, তবে এটি আপনাকে এখন আরও অনেক খেলায় পেয়েছে যে আপনি কখনই সংঘর্ষের মধ্যে পড়বেন। আমি এই শব্দটির সমস্ত বাস্তব ইন্দ্রিয়গুলিতে অসম্পূর্ণতা ধরে নিতে পারি।
আমার পক্ষে, আমি মনে করি যে সংঘর্ষের সম্ভাবনা খুব কমই ঘটেছিল যে আমি এটিকে "নিশ্চিত আগুন" হিসাবে বিবেচনা করব না তবে এটির পক্ষে এমনটি হওয়ার সম্ভাবনা কম যে এটি প্রয়োজনীয়তার সাথে মিলে যায়।
এখন সম্ভাব্য সংমিশ্রণগুলি উল্লেখযোগ্যভাবে উঠে গেছে। এটি আপনাকে পেতে পারে এমন কতগুলি সংমিশ্রণে আপনি দীর্ঘ সময় ব্যয় করতে পেরেছিলেন, তাত্ত্বিকভাবে আমি এটি বলব যে এটি আপনাকে উপরের উদ্ধৃত সংখ্যার চেয়ে স্বাক্ষর করে তুলবে
2^64 (or 18,446,744,073,709,551,616)
আরও একশত অঙ্ক বা সম্ভবত এর দ্বারা এটি আপনাকে দিতে পারে তাত্ত্বিক সর্বোচ্চ
ফলাফলযুক্ত স্ট্রিংয়ের সম্ভাব্য সংখ্যা:
528294531135665246352339784916516606518847326036121522127960709026673902556724859474417255887657187894674394993257128678882347559502685537250538978462939576908386683999005084168731517676426441053024232908211188404148028292751561738838396898767036476489538580897737998336