এটি সুপরিচিত যে, এলোমেলোভাবে বেছে নেওয়া অন্য একটির সাথে প্রতিটি আইটেম অদলবদল করে অ্যারে পরিবর্তন করার জন্য এই 'নিষ্পাপ' অ্যালগরিদমটি সঠিকভাবে কাজ করে না:
for (i=0..n-1)
swap(A[i], A[random(n)]);
বিশেষত, যেহেতু প্রতিটি পুনরাবৃত্তির সময় পছন্দ করা হয় (অভিন্ন সম্ভাবনার সাথে), সেখানে গণনার মাধ্যমে possible সম্ভাব্য 'পাথ' রয়েছে; কারণ সম্ভাব্য ক্রম সংখ্যাপাথের সংখ্যায় সমানভাবে বিভক্ত হয় না , এই অ্যালগরিদমের পক্ষে প্রতিটি তৈরি করা অসম্ভবসমান সম্ভাবনা সহ ক্রম। (পরিবর্তে, একজনকে তথাকথিত ফিশার-ইয়েটস শ্যাফেল ব্যবহার করা উচিত , যা [i..n) থেকে এলোমেলো নম্বর বেছে নেওয়ার জন্য কল দিয়ে [0..n) থেকে একটি র্যান্ডম নম্বর চয়ন করার জন্য কলটি পরিবর্তন করে; এটা আমার প্রশ্নের মূল বিষয়, যদিও।)
আমি যা ভাবছি তা হল, নিষ্পাপ বদলানো কীভাবে 'খারাপ' হতে পারে? আরও সুনির্দিষ্টভাবে, কে সমস্ত অনুক্রমের সেট হতে দেওয়া এবং নামক অ্যালগরিদমের মাধ্যমে যে পথগুলি এর ফলস্বরূপ ক্রমান্বন produce produce উত্পাদন করে তার সংখ্যা সংখ্যা হতে দেয় , এর asyptotic আচরণ কী? ক্রিয়াকলাপ
এবং
?
নেতৃস্থানীয় কারণটি হ'ল এই মানগুলিকে 'স্বাভাবিককরণ': যদি ভঙ্গুর বদল যদি 'অ্যাসেম্পোটোটিক্যালি ভাল' হয় তবে
।
আমি সন্দেহ যে প্রকৃত মান 1 থেকে দূরে বেষ্টিত করা হয় (কিছু কম্পিউটার সিমিউলেশন আমি দেখেছি উপর ভিত্তি করে), কিন্তু এটা এমনকি পরিচিত হয় যদি সসীম থাকে বা যদি থেকে দূরে বেষ্টিত 0? এই পরিমাণের আচরণ সম্পর্কে কী জানা যায়?