Amir Ahmad
Amir Ahmad
خواندن ۳ دقیقه·۴ سال پیش

رندمی (random) که می‌شناسیم چقدر رندم است؟


سوالی که کمتر بهش فکر می‌کنیم و در نظر می‌گیریم این که واقعا رندم یعنی چی و از کجا رندم تولید می‌شه؟

همه ما توی جا های مختلف با کلمه رندم سر و کار داشتیم وقتی برای مثال سکه می‌ندازیم یا تاس پرتاپ می‌کنیم می‌دونیم که تاس اگر خیلی دقیق و برابر ساخته شده باشد به صورت رندم عددی بین ۱ تا ۶ به ما می‌دهد و این یک عدد رندم است٬ ولی آیا واقعا خیلی اتفاقی و رندم این عدد تولید می‌شود؟ راستش نه ما اگر بیایم و تمامی جوانب (مثل جرم و حجم تاس٬ قدرت پرتاب٬ زاویه پرتاب٬ جزییات صطحی که قراره تاس فرود بیاد و ...) رو حساب کنیم تکنیکلی قبل از این که تاس نتیجه خودش رو نشون بده ما میتونیم ۱۰۰ درصد درست پیش‌بینی کنیم که چه عددی قرار هست نمایش داده شود. همین اتفاق برا سکه انداختن هم می‌تونه بیوفته و می‌تونیم شیر یا خط اومدن سکه رو هم از قبل پیش‌بینی کنیم یا با محاسبه جوری سکه رو پرتاب کنیم که خروجی که ما میخوایم رو بهمون بده.

اما ما واقعا به اعدادی که تصادفی درست می‌شن احتیاج داریم و اعداد رندم مصارف زیادی در حوزه های مختلف دارند برای مثال برای محافظت از اطلاعات و encrypt کردن داده٬ انتخاب کردن نمونه رندم از داده های بزرگ و ... به اعدادی غیر قابل پیشبینی و رندم احتیاج داریم.

راه های مختلفی تا به امروز برای تولید اعداد رندم به کار گرفته شده مثلا استفاده از یک کامپیوتر برای تولید عدد رندم اما خب مگه تمام کامپیوتر ها کاری به جز این سه مرحله می‌کنند؟

۱- دریافت ورودی

۲- انجام محاسبه بر روی ورودی

۳- دادن خروجی

در نتیجه کامپیوتر نمی‌تونه چیزی رو رندم تولید کنه و در اصل ما داریم با استفاده از فرمول های ریاضی (مثل Linear congruential generator) به کامپیوتر میگیم که رندم عددی تولید کنه که خب این با ماهیت تعریفی که از رندم داریم سازگار نیست چون در این صورت امکان پیشبینی عدد رندمی که کامپیتر قراره تولید کنه(PRNGs) با استفاده از فرمول ریاضی که استفاده کردیم وجود داره و می‌تونیم پیشبینی کنیم یا ساده سازی کنیم عددی که قراره تولید بشه.

روش دیگه ای که برای تولید اعداد رندم استفاده میشه کمک گرفتن از پدیده های فیزیکی و طبیعی(TRNGs) هست برای مثال وبسایت random.org از atmospheric noise استفاده میکنه که به راحتی حتی با یک رادیو هم قابل اندازه گیری هستند و با بکار گیری فرمولی٬ اعداد تصادفی و رندم تولید میکنه و خب به نظر خیلی روش بهتر و رندم تری(رندم تر خودش جای بحث داره:)) برای تولید اعداد تصادفی است. اما تکنیکلی پدیده های فیزیکی و طبیعی هم غیر قابل پیشبینی نیستند و نهایت اثر پروانه‌ای چیز های ریز و درشت هستند و امکان این که منشع تمام این پدیده هارو پیدا کنیم وجود دارد و می‌توان پیشبینی کرد که چه نویزی قراره تولید بشه پس میشه عددی که قراره تولید بشه رو پیش‌بینی کرد.

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

تمام چیز هایی که تا اینجا نوشته ام در مورد classical randomness بود با این اوصاف رسیدن به رندم واقعی غیر ممکن به نظر میاد اما تحقیقاتی که در حوزه فیزیک کوانتوم که در اصل یک روش و ابزاری است بر پایه ریاضیات احتمالی که از طریق اون بشه رفتار ذرات در ابعاد بسیار کوچک رو بررسی و مدل سازی کرد نشون میده که ذرات در اسکیل (Scale) خیلی کوچک رفتار غیر قابل پیشبینی دارند و خب با استفاده از این میتوان به Quantum Randomness رسید در حال حاظر نزدیک ترین تعریف نسبت به رندم رو بهمون میده چون کاملا غیر قابل پیش‌بینی است و با استفاده ازش میتونیم اعداد کاملا رندم تولید کنیم. اما همونطور که انیشتن راجب فیزیک کوانتم میگه : "خدا تاس نمی‌اندازه" که اشاره به این داره که حتما به روشی میشه فهمید که ‌ذرات توی اسکیل خیلی کوچک هم رفتارشون قابل پیشبینی است اما خب چیزی که تا امروز مشخص است اینه که نمیشه پیش‌بینی کرد و با استفاده از همین ما میتونیم عدد رندم واقعی رو داشته باشیم.



رندمrandomness
دانشجو علوم کامپیوتر علاقه مند به فوتبال/ ریاضی/علوم داده/فلسفه ...
شاید از این پست‌ها خوشتان بیاید