اعداد تصادفی از 1 تا 5. مولد اعداد تصادفی اکسل در تحلیل توابع و داده ها. ما با الگوریتم GPSC خودمان می‌آییم

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

در مناطق دیگر نیز محبوب است. همچنین ما یا رمز عبور و شماره داریم.

مولد اعداد تصادفی آنلاین ما.

ژنراتور تصادفی ساز ما نیازی به دانلود آن در رایانه شخصی خود ندارد. همه چیز در حالت مولد شماره آنلاین اتفاق می افتد. فقط پارامترهایی مانند: محدوده ای از اعداد آنلاین که در آن اعداد به صورت تصادفی انتخاب می شوند را مشخص کنید. همچنین تعداد اعدادی که باید انتخاب شوند را مشخص کنید.

به عنوان مثال، شما یک گروه Vkontakte دارید. در یک گروه، شما در حال قرعه کشی 5 جایزه هستید، از بین تعداد شرکت کنندگانی که مطلب را بازنشر می کنند. با کمک یک برنامه ویژه، لیستی از شرکت کنندگان دریافت کردیم. به هر کدام یک شماره سریال برای شماره های آنلاین اختصاص داده شد.

اکنون به مولد آنلاین خود می رویم و محدوده اعداد (تعداد شرکت کنندگان) را نشان می دهیم. به عنوان مثال، ما درخواست می کنیم که 5 شماره به صورت آنلاین مورد نیاز باشد، زیرا ما 5 جایزه داریم. حالا دکمه تولید را فشار می دهیم. سپس 5 عدد تصادفی را بصورت آنلاین بدست می آوریم، در محدوده 1 تا 112 شامل. 5 شماره تولید شده به صورت آنلاین با شماره سریال پنج شرکت کننده که برنده قرعه کشی شدند مطابقت دارد. همه چیز ساده و راحت است.

مزیت دیگر مولد اعداد تصادفی این است که همه اعداد آنلاین به صورت تصادفی تولید می شوند. یعنی نمی توان روی آن تأثیر گذاشت، یا محاسبه کرد که عدد بعدی چه خواهد بود. آنچه آن را صادقانه و قابل اعتماد می کند و مدیریتی که با کمک مولد رایگان ما جوایز را می گیرد، در مقابل شرکت کنندگان صادق و شایسته است. و اگر در مورد راه حل شک دارید، می توانید از ما استفاده کنید

چرا مولد اعداد تصادفی بهترین است؟

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

مولد اعداد تصادفی آنلاین به صورت رایگان!

مولد اعداد تصادفی آنلاین به صورت رایگان برای همه. شما نیازی به دانلود یا خرید ندارید مولد اعداد تصادفیآنلاین برای قرعه کشی شما فقط باید به وب سایت ما بروید و نتیجه مورد نیاز خود را به صورت تصادفی دریافت کنید. ما نه تنها داریم مولد اعداد تصادفیبلکه مورد نیاز بسیاری از افراد است که قطعا به شما در برنده شدن در لاتاری کمک خواهند کرد. یک تولید کننده اعداد تصادفی آنلاین واقعی برای قرعه کشی یک تصادف مطلق است. که سایت ما قادر است در اختیار شما قرار دهد.

شماره تصادفی آنلاین

اگر به دنبال شماره تصادفی آنلاین هستید، ما این منبع را فقط برای شما ایجاد کرده ایم. ما دائما در حال بهبود الگوریتم های خود هستیم. اینجا واقعی میشی مولد اعداد تصادفیهر نیازی را که نیاز دارید به عنوان یک ژنراتور تصادفی کاملاً رایگان و در هر زمان فراهم می کند. با ما به صورت آنلاین اعداد تصادفی تولید کنید. همیشه مطمئن باشید که هر عدد تولید شده کاملا تصادفی است.

مولد اعداد تصادفی

مولد اعداد تصادفی ما به طور تصادفی اعداد را کاملاً تصادفی انتخاب می کند. مهم نیست چه روز یا ساعتی در رایانه خود دارید. این یک انتخاب کور واقعی است. مولد تصادفی به سادگی تمام اعداد را به طور تصادفی به هم می زند. و سپس به صورت تصادفی از بین آنها تعداد اعداد تصادفی را که مشخص کرده اید انتخاب می کند. گاهی اوقات می توان اعداد را تکرار کرد که تصادفی بودن کامل مولد اعداد تصادفی را ثابت می کند.

تصادفی آنلاین

تصادفی مطمئن ترین گزینه برای قرعه کشی است. ژنراتور آنلاین واقعاً یک انتخاب تصادفی است. شما از هر گونه تأثیری در انتخاب یک عدد تصادفی محافظت می‌شوید. فیلمبرداری فرآیند انتخاب تصادفی آنلاین برنده در ویدئو. این تمام چیزی است که شما نیاز دارید. با مولد شماره آنلاین ما شوخی های آنلاین منصفانه بازی کنید. شما برندگان و بازیکنان راضی بدست می آورید. و ما خوشحالیم که توانستیم شما را با ژنراتور تصادفی خود راضی کنیم.

مولد اعداد تصادفی آنلاین ارائه شده بر اساس یک مولد اعداد شبه تصادفی برنامه ای ساخته شده در جاوا اسکریپت با توزیع یکنواخت کار می کند. اعداد صحیح تولید می شوند. به طور پیش فرض، 10 عدد تصادفی در محدوده 100...999 نمایش داده می شود، اعداد با فاصله از هم جدا می شوند.

تنظیمات اولیه مولد اعداد تصادفی:

  • مقدار اعداد
  • محدوده اعداد
  • نوع جداکننده
  • روشن / خاموش کردن عملکرد حذف تکرارها (دو عدد اعداد)

تعداد کل به طور رسمی به 1000 محدود شده است، حداکثر تعداد 1 میلیارد است. گزینه های جداکننده: فاصله، کاما، نقطه ویرگول.

اکنون دقیقاً می دانید که کجا و چگونه می توانید یک دنباله رایگان از اعداد تصادفی را در یک محدوده معین در اینترنت دریافت کنید.

موارد استفاده از مولد اعداد تصادفی

مولد اعداد تصادفی (RNG در JS با توزیع یکنواخت) برای متخصصان SMM و صاحبان گروه ها و جوامع در شبکه های اجتماعی اینستاگرام، فیس بوک، Vkontakte، Odnoklassniki برای تعیین برندگان قرعه کشی، مسابقات و قرعه کشی جوایز مفید خواهد بود.

مولد اعداد تصادفی به شما این امکان را می دهد که جوایز را در بین تعداد دلخواه شرکت کننده با تعداد معینی از برندگان قرعه کشی کنید. مسابقات را می توان بدون ارسال مجدد و نظرات برگزار کرد - شما خودتان تعداد شرکت کنندگان و فاصله زمانی تولید اعداد تصادفی را تعیین می کنید. شما می توانید مجموعه ای از اعداد تصادفی را به صورت آنلاین و رایگان در این سایت دریافت کنید و نیازی به نصب هیچ اپلیکیشنی بر روی گوشی هوشمند یا برنامه ای روی کامپیوتر خود ندارید.

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

آیا تا به حال فکر کرده اید که Math.random() چگونه کار می کند؟ عدد تصادفی چیست و چگونه به دست می آید؟ و یک سوال در یک مصاحبه تصور کنید - مولد اعداد تصادفی خود را در چند خط کد بنویسید. و بنابراین، آن چیست، یک حادثه و آیا می توان آن را پیش بینی کرد؟

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

این مطالب برای همه آن دسته از توسعه دهندگان فرانت اند و توسعه دهندگان Node.js مفید خواهد بود که در خط مقدم فناوری هستند و می خواهند وارد پروژه / استارتاپ بلاک چین شوند، جایی که حتی از توسعه دهندگان فرانت اند در مورد امنیت و رمزنگاری سؤالاتی پرسیده می شود. حداقل در سطح پایه

مولد اعداد تصادفی شبه و مولد اعداد تصادفی

برای بدست آوردن چیزی تصادفی، به منبع آنتروپی نیاز داریم، منبع نوعی آشفتگی که از آن برای تولید تصادفی استفاده کنیم.

این منبع برای جمع آوری آنتروپی و به دنبال آن بدست آوردن مقدار اولیه (مقدار اولیه، دانه) از آن استفاده می شود که برای تولید اعداد تصادفی (RNG) برای تولید اعداد تصادفی ضروری است.

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

آنتروپی - معیاری از بی نظمی است. آنتروپی اطلاعات معیاری برای عدم قطعیت یا غیرقابل پیش بینی بودن اطلاعات است.
به نظر می رسد که برای ایجاد یک دنباله شبه تصادفی، به الگوریتمی نیاز داریم که بر اساس یک فرمول خاص، دنباله ای ایجاد کند. اما چنین توالی را می توان پیش بینی کرد. با این حال، بیایید تصور کنیم که اگر Math.random() را نداشته باشیم چگونه می‌توانیم مولد اعداد تصادفی خودمان را بنویسیم.

PRNG الگوریتمی دارد که می توان آن را بازتولید کرد.
RNG - به دست آوردن اعداد به طور کامل از هر نویز است، توانایی محاسبه آن به صفر می‌رسد. در عین حال، RNG الگوریتم های خاصی برای تراز کردن توزیع دارد.

اختراع الگوریتم PRNG خودمان

مولد اعداد شبه تصادفی (PRNG) الگوریتمی است که دنباله ای از اعداد را تولید می کند که عناصر آن تقریباً مستقل از یکدیگر هستند و از توزیع معینی (معمولاً یکنواخت) تبعیت می کنند.
می توانیم دنباله ای از اعداد را بگیریم و مدول عدد را از آنها بگیریم. ساده ترین مثالی که به ذهنم می رسد. ما باید به این فکر کنیم که چه دنباله ای بگیریم و ماژول از چه چیزی. اگر فقط مستقیماً از 0 به N و ماژول 2 برسد، یک مولد 1 و 0 دریافت می کنید:

تابع* rand() (const n = 100؛ const mod = 2؛ اجازه دهید i = 0؛ while (true) (بازده i% mod؛ اگر (i++ > n) i = 0؛ )) بگذارید i = 0. برای (بگذارید x از rand()) (اگر (i++ > 100) شکسته شود؛ console.log(x)؛ )
این تابع دنباله 01010101010101 را برای ما تولید می کند و حتی نمی توان آن را شبه تصادفی نامید. برای اینکه یک ژنراتور تصادفی باشد، باید تست بیت بعدی را بگذراند. اما ما چنین وظیفه ای نداریم. با این وجود، حتی بدون هیچ آزمایشی، می توانیم دنباله بعدی را پیش بینی کنیم، به این معنی که چنین الگوریتمی در پیشانی مناسب نیست، اما ما در مسیر درستی هستیم.

اما اگر دنباله ای شناخته شده، اما غیرخطی، به عنوان مثال، عدد PI را در نظر بگیریم، چه می شود. و به عنوان یک مقدار برای ماژول، ما نه 2، بلکه چیز دیگری را می گیریم. حتی می توانید به تغییر ارزش ماژول فکر کنید. دنباله ارقام در پی تصادفی در نظر گرفته می شود. ژنراتور می تواند با استفاده از پی کار کند و از نقطه ای ناشناخته شروع شود. نمونه ای از چنین الگوریتمی، با توالی مبتنی بر PI و تغییر مدول:

Const vector = [...Math.PI.toFixed(48).replace(.",""")]; تابع* rand() ( برای (بگذارید i=3؛ i<1000; i++) { if (i >99) i = 2; برای (بگذارید n=0؛ n اما در JS عدد PI فقط تا 48 کاراکتر قابل نمایش است و نه بیشتر. بنابراین، پیش‌بینی چنین دنباله‌ای همچنان آسان است و هر بار اجرای چنین ژنراتوری همیشه اعداد یکسانی را تولید می‌کند. اما ژنراتور ما قبلاً شروع به نشان دادن اعداد از 0 تا 9 کرده است.

ما یک مولد اعداد از 0 تا 9 دریافت کردیم، اما توزیع بسیار ناهموار است و هر بار همان دنباله را ایجاد می کند.

می‌توانیم نه عدد Pi، بلکه زمان را در نمایش عددی بگیریم و این عدد را دنباله‌ای از ارقام در نظر بگیریم و برای جلوگیری از تکرار هر بار دنباله، آن را از آخر می‌خوانیم. در مجموع، الگوریتم ما برای PRNG ما به این صورت خواهد بود:

تابع* rand() ( اجازه دهید newNumVector = () => [...(+تاریخ جدید)+""].reverse(); let vector = newNumVector(); let i=2; while (true) ( اگر (i++ > 99) i = 2؛ بگذارید n=-1؛ در حالی که (++n< vector.length) yield (vector[n] % i); vector = newNumVector(); } } // TEST: let i = 0; for (let x of rand()) { if (i++ >100) شکستن؛ console.log(x))
حالا شبیه یک تولید کننده اعداد شبه تصادفی است. و همان Math.random() -  یک PRNG است، کمی بعد در مورد آن صحبت خواهیم کرد. علاوه بر این، هر بار شماره اول متفاوت است.

در واقع، با این مثال های ساده، می توانید درک کنید که چگونه مولدهای اعداد تصادفی پیچیده تر کار می کنند.و حتی الگوریتم های آماده وجود دارد. به عنوان مثال، بیایید یکی از آنها را تجزیه و تحلیل کنیم - این خطی همگام PRNG (LCPRNG) است.

PRNG همگرا خطی

خطی همسویی PRNG (LCPRNG) -  یک روش رایج برای تولید اعداد شبه تصادفی است. قدرت رمزنگاری ندارد. این روش شامل محاسبه شرایط یک مدول دنباله بازگشتی خطی مقداری از عدد طبیعی m است که توسط یک فرمول به دست می‌آید. دنباله به دست آمده بستگی به انتخاب شماره شروع  -  یعنی. دانه برای مقادیر مختلف دانه، دنباله های متفاوتی از اعداد تصادفی به دست می آید. نمونه ای از پیاده سازی چنین الگوریتمی در جاوا اسکریپت:

Const a = 45; const c = 21; const m = 67; varseed = 2; const rand = () => seed = (a * seed + c) % m; برای (بگذارید i=0؛ i<30; i++) console.log(rand())
بسیاری از زبان های برنامه نویسی از LCPRNG استفاده می کنند (اما نه فقط از چنین الگوریتمی (!).

همانطور که در بالا ذکر شد، چنین توالی را می توان پیش بینی کرد. پس چرا به PRNG نیاز داریم؟ اگر در مورد امنیت صحبت کنیم، PRNG یک مشکل است. اگر در مورد وظایف دیگر صحبت کنیم، این ویژگی ها  -  می توانند یک مزیت داشته باشند. به عنوان مثال، برای جلوه‌های ویژه و انیمیشن‌های گرافیکی مختلف، ممکن است لازم باشد مرتباً به‌طور تصادفی تماس بگیرید. و در اینجا توزیع ارزش ها و عملکرد مهم است! الگوریتم های امنیتی نمی توانند به سرعت به خود ببالند.

خاصیت دیگر - تکرارپذیری. برخی از پیاده‌سازی‌ها به شما امکان می‌دهند یک seed را مشخص کنید، که اگر قرار باشد یک دنباله تکرار شود بسیار مفید است. برای مثال، تولید مثل در آزمایشات ضروری است. و بسیاری چیزهای دیگر وجود دارد که نیازی به RNG ایمن ندارند.

چگونه Math.random() کار می کند

متد Math.random() یک عدد ممیز شناور شبه تصادفی را از محدوده = crypto.getRandomValues(new Uint8Array(1)) برمی گرداند. گزارش کنسول (rvalue)
اما، بر خلاف PRNG Math.random()، این روش بسیار منابع فشرده است. واقعیت این است که این ژنراتور از فراخوانی های سیستم در سیستم عامل برای دسترسی به منابع آنتروپی (آدرس خشخاش، cpu، دما و غیره ...) استفاده می کند.

ما دنباله ای از اعداد داریم که از عناصر تقریباً مستقلی تشکیل شده است که از توزیع معینی تبعیت می کنند. معمولاً به طور مساوی توزیع می شود.

شما می توانید اعداد تصادفی را در اکسل به روش ها و روش های مختلف تولید کنید. بیایید نگاهی به بهترین آنها بیندازیم.

تابع اعداد تصادفی در اکسل

  1. تابع RAND یک عدد واقعی تصادفی توزیع شده یکنواخت را برمی گرداند. کمتر از 1، بزرگتر یا مساوی 0 خواهد بود.
  2. تابع RANDBETWEEN یک عدد صحیح تصادفی برمی گرداند.

بیایید با مثال به کاربرد آنها نگاه کنیم.

انتخاب اعداد تصادفی با RAND

این تابع به هیچ آرگومان نیاز ندارد (RAND()).

برای تولید یک عدد واقعی تصادفی بین 1 و 5، برای مثال، از فرمول زیر استفاده کنید: =RAND()*(5-1)+1.

عدد تصادفی برگشتی به طور مساوی در بازه زمانی توزیع می شود.

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

  1. روی سلولی با یک عدد تصادفی کلیک می کنیم.
  2. فرمول را در نوار فرمول برجسته کنید.
  3. F9 را فشار دهید. و وارد کنید.

بیایید یکنواختی توزیع اعداد تصادفی را از اولین نمونه با استفاده از هیستوگرام توزیع بررسی کنیم.


محدوده مقادیر عمودی فرکانس است. افقی - "جیب".



تابع RANDBETWEEN

نحو تابع RANDBETWEEN (کران پایین، کران بالا) است. آرگومان اول باید کمتر از آرگومان دوم باشد. در غیر این صورت، تابع یک خطا ایجاد می کند. کران ها اعداد صحیح فرض می شوند. فرمول قسمت کسری را کنار می گذارد.

مثالی از استفاده از تابع:

اعداد تصادفی با دقت 0.1 و 0.01:

چگونه یک مولد اعداد تصادفی در اکسل بسازیم

بیایید یک مولد اعداد تصادفی با تولید یک مقدار از یک محدوده خاص بسازیم. ما از فرمولی مانند: =INDEX(A1:A10;INTEGER(RAND()*10)+1 استفاده می کنیم.

بیایید یک مولد اعداد تصادفی در محدوده 0 تا 100 با گام 10 بسازیم.

از لیست مقادیر متنی، باید 2 مورد تصادفی را انتخاب کنید. با استفاده از تابع RAND، مقادیر متن را در محدوده A1:A7 با اعداد تصادفی مقایسه می کنیم.

بیایید از تابع INDEX برای انتخاب دو مقدار متن تصادفی از لیست اصلی استفاده کنیم.

برای انتخاب یک مقدار تصادفی از لیست، فرمول زیر را اعمال کنید: =INDEX(A1:A7,RANDBETWEEN(1,COUNT(A1:A7))).

مولد اعداد تصادفی توزیع عادی

توابع RAND و RANDBETWEEN اعداد تصادفی را با یک توزیع واحد تولید می کنند. هر مقدار با احتمال یکسان می تواند در حد پایین محدوده درخواستی و در محدوده بالایی قرار گیرد. به نظر می رسد که یک اسپرد بزرگ از مقدار هدف.

توزیع نرمال به این معنی است که بیشتر اعداد تولید شده نزدیک به هدف هستند. بیایید فرمول RANDBETWEEN را تصحیح کنیم و یک آرایه داده با توزیع نرمال ایجاد کنیم.

هزینه کالا X 100 روبل است. کل دسته تولید شده در معرض توزیع نرمال است. متغیر تصادفی نیز از توزیع احتمال نرمال پیروی می کند.

در چنین شرایطی، مقدار متوسط ​​محدوده 100 روبل است. بیایید یک آرایه ایجاد کنیم و یک نمودار با توزیع نرمال با انحراف استاندارد 1.5 روبل بسازیم.

ما از تابع: =NORMINV(RAND();100;1.5) استفاده می کنیم.

اکسل محاسبه کرد که چه مقادیری در محدوده احتمالات قرار دارند. از آنجایی که احتمال تولید یک محصول با هزینه 100 روبل حداکثر است، فرمول مقادیر نزدیک به 100 را بیشتر از بقیه نشان می دهد.

بیایید به نقشه کشیدن برویم. ابتدا باید یک جدول با دسته ها ایجاد کنید. برای انجام این کار، آرایه را به دوره های زیر تقسیم می کنیم:

بر اساس داده های به دست آمده می توانیم نموداری با توزیع نرمال تشکیل دهیم. محور ارزش تعداد متغیرها در بازه است، محور دسته دوره ها است.