User:Roodabeh sfv/sandbox

بر زدن فیشر یتس الگوریتمی برای ایجاد جایگشت تصادفی از یک دنباله است. در حقیقت این الگوریتم همه‌ی عناصر را در یک جعبه قرار می‌دهد. سپس مادامی که جعبه پر است با خارج کردن تصادفی عنصری از جعبه، عنصر بعدی را مشخص می‌کند.

الگوریتم فیشر یتس یک جایگشت نااریب ایجاد می‌کند به عبارتی آمدن هر جایگشت دنباله، احتمال یکسانی دارد. نسخه‌ی جدید این الگوریتم بهینه است و زمان اجرای آن ضریبی از تعداد عناصر $$(O(n))$$ می‌باشد. همچنین درجا اجرا می‌شود و نیاز به حافظه‌ی اضافی ندارد.

روش اصلی بر زدن فیشر یتس
نسخه ی اولیه بر زدن فیشر-یتس در سال ۱۹۳۸ توسط رونالد فیشر و فرنک یتس در کتاب جداول آماری برای تحقیقات زیستی، زراعتی، پزشکی منتشر شد. در این نسخه خاصیت تصادفی توسط جدولی از اعداد تصادفی ایجاد میشود. روش ایجاد جایگشت تصادفی اعداد ۱ تا n به شرح زیر است:

۱-  اعداد یک تا n را بنویسید.

۲-  عدد تصادفی k را بین یک و تعداد اعداد خط نخورده انتخاب کنید. ( k می‌تواند یک و تعداد اعداد باقی‌مانده نیز باشد. )

۳-  k امین عدد خط نخورده را پیدا کنید و انتهای لیستی دیگر بنویسید. سپس آن را خط بزنید.

۴-  مراحل ۲ و ۳ را تکرار کنید تا تمامی اعداد خط بخورند.

۵-  دنباله ی اعداد ایجاد شده در لیست، جایگشتی از دنباله‌ی اولیه است.

با فرض اینکه عدد تصادفی انتخاب شده در مرحله ی ۲ واقعا تصادفی و نااریب باشد جایگشت ایجاد شده نیز دارای این خواص است. همچنین فیشر و یتس درباره ی چگونگی تولید عدد تصادفی در هر بازه‌ای توسط جداول از پیش مهیا شده توضیح دادند. این روش نااریب است.