عدد تصادفی در اکسل — راهنمای کاربردی

۲۳۵۴ بازدید
آخرین به‌روزرسانی: ۱۷ اسفند ۱۳۹۹
زمان مطالعه: ۱۰ دقیقه
عدد تصادفی در اکسل random numbers in excel

اعداد تصادفی در کنار فعالیت‌های روزانه بشر، گاهگاهی به کار می‌روند. انجام قرعه کشی، شبیه‌سازی فعالیت‌های واقعی، پیش‌بینی آب و هوا و شرایط جوی، همگی از اعداد تصادفی تولید شده استفاده می‌کنند. همچنین ابزارهای مختلفی نظیر ماشین‌های مکانیکی تولید اعداد تصادفی تا ابزارهای الکترونیکی برای تولید «اعداد تصادفی» (Random Number) یا به شکل دقیق‌تر «شبه تصادفی» (Pseudo Random Number) تولید شده‌اند. در این نوشتار به نحوه تولید عدد تصادفی در اکسل خواهیم پرداخت و شیوه‌های مختلف ایجاد چنین اعدادی را در اکسل مرور خواهیم کرد.

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

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

بازی‌های شانسی وابسته به اعداد تصادفی هستند. پرتاب یک تاس، نمونه‌ای از یک بازی تصادفی یا شانسی است. قبل از آنکه یک تاس را پرتاب کنیم، از نتیجه آن آگاه نخواهیم بود ولی می‌دانیم یکی از اعداد ۱ تا ۶ به عنوان حاصل پرتاب تاس خواهد بود. به این ترتیب احتمال مشاهده مثلا عدد ۵ را برابر با ۱/۶ در نظر می‌گیریم. همین احتمال یا هم‌شانسی را می‌توان مبنایی برای تولید اعداد تصادفی در نظر گرفت. البته واضح است که در این حالت، احتمال مشاهده هر یک از اعداد، یکسان بوده و با احتمال برابر رخ خواهند داد.

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

در این نوشتار ابتدا توزیع‌های آماری و نحوه تولید اعداد تصادفی براساس آن‌ها را توضیح داده، سپس نحوه تولید اعداد تصادفی با تابع‌های اکسل (از توزیع یکنواخت و توزیع دلخواه) را بازگو خواهیم کرد. در انتها نیز با استفاده از افزونه Analysis ToolPak، تولید اعداد تصادفی را به کمک توزیع‌های مختلف آماری در اکسل اجرا می‌کنیم.

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

عدد تصادفی، مقداری است که طبق قوانین شانس ظاهر می‌شود. همانطور که می‌دانید، در «نظریه احتمال» (Probability Theory) که یکی از شاخه‌های آمار محسوب می‌شود، قوانین شانس مورد مطالعه و استخراج قرار می‌گیرد. در نتیجه تولید عدد تصادفی کاملا وابسته به توزیع احتمال و متغیرهای تصادفی است. در نوشتار توزیع های آماری — مجموعه مقالات جامع وبلاگ فرادرس می‌توانید با این گونه توزیع‌ها و متغیرهای وابسته، آشنا شده و کاربرد هر یک را بخوانید.

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

یکی از توابع برای تولید عدد تصادفی در اکسل که از «توزیع یکنواخت پیوسته» (Continuous Uniform Distribution) استفاده می‌کند، تابع RAND است. واضح است که چنین عددی در بازه ۰ تا ۱ تولید خواهد شد. شکل دستوری این تابع به صورت زیر است.

RAND ( )

همانطور که مشاهده می‌کنید، این تابع به هیچ پارامتری احتیاج ندارد و به طور خودکار یک عدد تصادفی در بازه $$[0,1)$$ تولید می‌کند. برای آنکه مثلا ۱۰ عدد تصادفی با توزیع یکنواخت پیوسته تولید کنید، کافی است فرمول نوشته شده در یک سلول را در ۱۰ سلول دیگر کپی کنید. برای مثال اگر تابع RAND را در سلول A1‌ وارد کرده باشیم، با کپی کردن آن در سلول‌های پایینی، ۱۰ مقدار تصادفی خواهیم داشت.

نکته: می‌دانید که هر فرمول یا تابع در اکسل، به محض تغییر هر یک از سلول‌ها، مجدداً محاسبه می‌شود. در نتیجه هر بار مقدار سلول‌هایی که با تابع RAND مقدار دهی شده‌اند، تغییر کرده و یک عدد تصادفی جدید درون سلول ثبت خواهد شد.

در نسخه‌های بعد از ۲۰۱۰ اکسل، الگوریتم به کار رفته برای تولید اعداد تصادفی، «الگوریتم مرسن پیچشی» (Mersenne Twister algorithm) یا به اختصار (MT19937) استفاده می‌کند. این الگوریتم یکی از بهترین روش‌های تولید اعداد تصادفی بوده که در بیشتر زبان‌های برنامه‌نویسی از جمله R, Python و C، پیاده‌سازی شده است.

اگر می‌خواهید به کمک این تابع در بازه $$a$$ تا $$b$$، یک عدد تصادفی ایجاد کنید، کافی است محاسبات را به صورت زیر انجام دهید.

= RAND() * ( b – a ) + a

به این ترتیب اگر $$a = 10$$ و $$b = 20$$‌ باشد، با توجه به نتیجه عدد تصادفی مثلا ۰٫۳۵۴، خواهیم داشت.

$$ = 0.354 * ( 20 – 10 ) + 10 = 3.54 + 10 = 13. 54 $$

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

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

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

RANDBETWEEN(bottom, top)

که پارامتر bottom کران پایین و top نیز کران بالا برای اعداد تصادفی تولید شده را نشان می‌دهند. البته توجه داشته باشید که هر دو این پارامترها باید مقادیر صحیح (مثبت با منفی) باشند. برای مثال اگر بخواهیم اعداد صحیح در بازه ۱۰- تا ۱۰+ ایجاد کنیم تابع را به صورت زیر وارد می‌کنیم. با کپی کردن این فرمول روی سلول‌های دیگر نیز به تعداد دلخواه عدد تصادفی در این بازه تولید خواهد شد.

= RANDBETWEEN(-10 , 10)

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

نکته: اگر می‌خواهید اعداد تصادفی تولید شده، تغییری نداشته باشند، کافی است آن‌ها را کپی کرده و هنگام اجرای دستور Paste Special، گزینه Value را انتخاب کنید. به این ترتیب فرمول‌ها تبدیل به مقادیر شده و دیگر تغییر نخواهند کرد.

تولید عدد تصادفی در اکسل با تابع معکوس توزیع‌های آماری

در این قسمت می‌خواهیم براساس توابع آماری و بخصوص توابع مرتبط با معکوس توزیع‌های آماری، عدد تصادفی در اکسل تولید کنیم. در اکسل بسیاری از توابع مربوط به محاسبات آماری، مرتبط به توزیع‌های آماری هستند. برای مثال تابع NORM.DIST، مقدار تابع چگالی یا مقدار توزیع احتمال (توزیع تجمعی) را در یک نقطه، محاسبه می‌کند. واضح است که این مقدار در بازه ۰ تا ۱ خواهد بود. حال اگر از تابع عکس توزیع یعنی NORM.DIST.INV استفاده کنیم، با مشخص کردن مقدار احتمال (p) و پارامترهای توزیع نرمال، مقدار صدک pام را بدست خواهیم آورد.

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

جدول ۱: معکوس توابع احتمال برای تولید عدد تصادفی در اکسل

توزیع تابع پارامترهای توزیع پارامتر احتمال یا p
توزیع بتا BETA.INV alpha , beta, A , B probability
توزیع دو جمله‌ای BINOM.INV trials , probability_s alpha
توزیع کای ۲ CHISQ.INV deg_freedom probability
توزیع کای ۲ (دم سمت راست) CHISQ.INV.RT deg_freedom probability
توزیع F F.INV deg_freedom1 , deg_freedom2 probability
توزیع F (دم سمت راست) F.INV.RT deg_freedom1 , deg_freedom2 probability
توزیع گاما GAMMA.INV alpha , beta probability
توزیع لوگ نرمال LOGNORM.INV mean, standard_dev probability
توزیع نرمال NORM.INV mean, standard_dev probability
توزیع نرمال استاندارد NORM.S.INV probability
توزیع تی T.INV deg_freedom probability
توزیع تی (دو طرفه) T.INV.2T deg_freedom probability

برای مثال فرض کنید می‌خواهیم مقداری تصادفی از توزیع گاما تولید کنید. اگر توزیع گامای مورد نظر با پارامترهای ۱ و ۲ باشد، فرمول زیر می‌تواند یک عدد تصادفی از این توزیع در نقطه 0٫75 ایجاد کند.

= GAMMA.INV ( 0.75 , 1 , 2 )

حال در نظر بگیرید که مقدار احتمال (0٫75) توسط یک تابع تصادفی مانند ()RAND تولید شده باشد. به این ترتیب فرمولی که در ادامه مشاهده خواهید کرد. با هر بار تغییر در کاربرگ، یک عدد تصادفی از توزیع گاما خواهد ساخت.

= GAMMA.INV ( RAND( ) , 1 , 2 )

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

= NORM.S.IN ( RAND( ) )

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

تولید عدد تصادفی با ابزار Random Number Generation

یکی از ابزارهای بسیار مفید در اکسل که به صورت یک افزونه (Add-ins) قابل نصب است، Analysis ToolPak است که وظیفه تحلیل داده‌ها را با استفاده از تکنیک‌های آماری به عهده دارد. در این قسمت با استفاده از گزینه Random Number Generation، عدد تصادفی در اکسل ایجاد خواهیم کرد.

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

data analysis add ins
تصویر ۱: افزونه تحلیل داده و دستور تولید عدد تصادفی در اکسل (Random Number Generation)

پس از اجرای این دستور پنجره‌ای به صورت زیر ظاهر شده که پارامترهای مربوط به تولید عدد تصادفی در اکسل را درخواست می‌کند. این پارامترها توسط جدول زیر معرفی شده‌اند.

جدول ۲: گزینه‌ها و تنظیمات پنجره تولید عدد تصادفی در افزونه Data Analysis

گزینه عملکرد توضیحات
Number of Variables تعداد متغیرها تعداد ستون‌هایی که باید عدد تصادفی در آن‌ها تولید شود.
Number of Random Numbers تعداد اعداد تصادفی تعداد سطرهایی که باید برای تولید عدد تصادفی به کار رود.
Distribution توزیع آماری توزیع‌های پر کاربرد آماری در این بخش دیده می‌شود.
Parameters پارامترهای توزیع مورد نظر با انتخاب هر نوع توزیع، پارامترهای آن در قسمت پایین درخواست می‌شود.
Random Seed دانه تصادفی مقداری است که براساس آن الگوریتم تولید اعداد شبه تصادفی به کار می‌افتد. با تعیین آن هر بار اجرا دستور، اعداد تصادفی یکسانی تولید می‌کند.
Output Range ناحیه خروجی انتخاب ابتدای ناحیه‌ای از کاربرگ جاری برای تولید اعداد تصادفی
New Worksheet Ply کاربرگ جدید برای خروجی
New Workbook کارپوشه جدید برای خروجی

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

random number generation dialog box
تصویر ۲: عدد تصادفی در اکسل و افزونه Data Analysis ToolPak

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

جدول ۳: توزیع‌های مختلف برای تولید عدد تصادفی در اکسل با افزونه Data AnalysisToolPak

توزیع شرح پارامترهای توزیع
Uniform توزیع یکنواخت کران پایین در بخش Between و کران بالا بعد از and معرفی می‌شوند. این توزیع گسسته است.
Normal توزیع نرمال میانگین (Mean) و انحراف استاندارد (Standard Deviation) پارامترهای این توزیع هستند. انحراف استاندارد باید مقداری مثبت باشد.
Bernoulli توزیع برنولی پارامتر این توزیع p Value احتمال موفقیت است. در نتیجه باید در بازه ۰ تا ۱ مقدار دهی شود.
Binomial توزیع دو جمله‌ای پارامترهای این توزیع p Value یا احتمال موفقیت و تعداد آزمایش‌ها (Number of trials) است. هر دو پارامتر مثبت بوده ولی p Value در بازه ۰ تا ۱ تغییر می‌کند.
Poisson توزیع پواسن پارامتر این توزیع مقدار Lambda است که مقداری مثبت است. این پارامتر نشان دهنده متوسط تعداد خطاها یا معدل متغیر تصادفی توزیع پواسن را نشان می‌دهد.
Patterned دنباله الگو دار با این روش دنباله‌ای از اعداد طبق پارامترهای مختلف تولید می‌شود.
Discrete توزیع گسسته پارامتر این توزیع، «مقادیر و لیستی از مقادیر احتمال» (Value and Probability Input Range) است. به این ترتیب هر مقدار با احتمال مشخصی، شانس ظاهر شدن در لیست عدد تصادفی را دارد.

نکته: انتخاب توزیع‌های گسسته مانند «توزیع یکنواخت» (Uniform) یا «گسسته» (Discrete) باعث تولید اعداد تصادفی صحیح یا طبیعی خواهد شد. ولی توزیع نرمال اعداد اعشاری تولید خواهد کرد.

مثال

فرض کنید که می‌خواهیم برای دو ستون از کاربرگ اکسل و به تعداد ۱۰0۰ سطر، اعداد تصادفی از توزیع نرمال تولید کنیم. به این منظور تنظیمات این پنجره را مطابق با تصویر بالا انجام می‌دهیم. البته توجه داشته باشید که توزیع نرمال در اینجا همان توزیع نرمال استاندارد بوده و میانگین و انحراف استاندارد آن به ترتیب ۰ و ۱ است. نتیجه به صورت دو ستون و هزار سطر خواهد بود که شامل مقادیری در حدود تقریبی بازه ۳- تا ۳+ است.

برای نمایش دادن نرمال بودن توزیع این متغیرها، می‌توان از رسم نمودار فراوانی (Histogram) استفاده کرد. به این منظور، دستور Histogram را از پنجره Data Analysis انتخاب کرده و تنظیمات را به صورت زیر انجام می‌دهیم.

Histogram parameters
تصویر ۳: پنجره تنظیمات رسم نمودار فراوانی (Histogram) در اکسل

از آنجایی که با انتخاب گزینه New Worksheet Ply، کاربرگ جدیدی برای نتیجه ایجاد خواهد شد، خروجی را به طور جداگانه خواهیم دید. نمودار ترسیم شده نمایانگر آن است که توزیع داده‌های تصادفی بسیار به توزیع نرمال یا «نمودار زنگی شکل» (Bell Curve) شبیه هستند. از طرفی صفر بودن میانگین نیز در این نمودار به وضوح به چشم می‌خورد.

Histogram plot
تصویر ۴: نمودار فراوانی و مشابهت توزیع داده های تصادفی با توزیع نرمال

ساخت الگوی عددی در اکسل با افزونه Data Analysis

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

جدول ۴: پارامترهای دستور Pattern در تولید عدد تصادفی

گزینه عملکرد توضیحات
From کران پایین یا اولین مقدار الگو ممکن است با توجه به این پارامترها، به آخرین مقدار الگو نرسیم به همین جهت نام پارامتر دوم را کران بالا قرار دادیم.
to کران بالا یا آخرین مقدار الگو
in steps of میزان افزایش
repeating each number تعداد تکرارهای هر یک از اعداد الگو
repeating the sequence تعداد تکرارهای دنباله عددی تولید شده

مثال

همانطور که می‌دانید هر سال شامل ۴ فصل است که می‌توان آن‌ها را به ترتیب از ۱ تا ۴ شماره‌گذاری کرد. همچنین می‌خواهیم این فصل‌ها را برای ۱۰ سال مشخص کنیم. در نتیجه باید دنباله ۱ تا ۴، هر دفعه ۱۰ بار تکرار شوند. واضح است که تکرار هر عدد، در هر سال، یکبار اتفاق می‌افتد پس گزینه repeating each number را ۱ انتخاب کرده و repeating the sequence را ۱۰ انتخاب می‌کنیم. به این ترتیب ۴۰ عدد تولید خواهد شد. تصویر زیر، تنظیمات و همینطور دنباله تولید شده را نشان می‌دهد.

pattern generation
تصویر ۵: ایجاد الگوی فصل‌های ۱۰ سال با مقادیر عددی در اکسل با گزینه Patterned

توجه داشته باشید در این جا برای تعداد اعداد (Number of Random Numbers)، مقداری مشخص نشده است. در نتیجه هنگامی که دنباله به پایان برسد، کار تولید عددها نیز خاتمه خواهد یافت.

خلاصه و جمع‌بندی

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

بر اساس رای ۱۰ نفر
آیا این مطلب برای شما مفید بود؟
شما قبلا رای داده‌اید!
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
مجله فرادرس

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *