آمار و احتمال پایه برای برنامه نویسی | مفاهیم پایهای احتمال
خطای دسترسی
برای ثبت پاسخ، ابتدا باید در سایت وارد شوید.
تعریف احتمال و فضای نمونه
احتمال، علم اندازهگیری شانس وقوع یک رویداد است. در دنیای برنامهنویسی، از احتمال برای مدلسازی رفتارهای غیرقطعی، ساخت بازیها، طراحی الگوریتمهای هوشمند و تحلیل دادهها استفاده میشود.
فضای نمونه (Sample Space):
به مجموعه تمام نتایج ممکن یک آزمایش تصادفی، فضای نمونه میگوییم و آن را معمولاً با حرف S نشان میدهیم. هر عضو این مجموعه یک نتیجه مقدماتی است.
- مثال ۱ (پرتاب سکه): آزمایش: پرتاب یک سکه عادلانه.
- فضای نمونه:
S = {رو، پشت}یاS = {H, T}.
- فضای نمونه:
- مثال ۲ (پرتاب تاس): آزمایش: پرتاب یک تاس استاندارد ششوجهی.
- فضای نمونه:
S = {1, 2, 3, 4, 5, 6}.
- فضای نمونه:
- مثال ۳ (پرتاب دو سکه): آزمایش: پرتاب همزمان دو سکه.
- فضای نمونه:
S = {(رو,رو), (رو,پشت), (پشت,رو), (پشت,پشت)}.
- فضای نمونه:
رویداد (Event):
هر زیرمجموعه از فضای نمونه را یک رویداد مینامیم. یک رویداد میتواند شامل یک یا چند نتیجه مقدماتی باشد.
- در مثال پرتاب تاس، رویداد "آمدن عدد زوج" برابر است با
E = {2, 4, 6}که یک زیرمجموعه ازSاست.
تعریف کلاسیک احتمال (برای فضای نمونههای گسسته و همشانس):
اگر فضای نمونه S دارای n نتیجه مقدماتی همشانس باشد، احتمال وقوع هر رویداد A از رابطه زیر به دست میآید:
P(A) = (تعداد نتایج مطلوب برای رویداد A) / (تعداد کل نتایج ممکن در فضای نمونه S)
یا به طور خلاصه: P(A) = |A| / |S|
مثال محاسبه:
در پرتاب تاس، احتمال رویداد A (آمدن عدد زوج) چقدر است؟
- فضای نمونه:
S = {1, 2, 3, 4, 5, 6}→|S| = 6 - رویداد مطلوب:
A = {2, 4, 6}→|A| = 3 - احتمال:
P(A) = 3 / 6 = 0.5یا50%
نمایش در کد (پایتون):
بیایید این مفاهیم را با یک برنامه ساده برای پرتاب تاس شبیهسازی کنیم.
import random
# تعریف فضای نمونه برای پرتاب تاس
sample_space = [1, 2, 3, 4, 5, 6]
# تعریف رویداد "عدد زوج"
event_even = {2, 4, 6}
# شبیهسازی یک پرتاب
single_roll = random.choice(sample_space)
print(f"نتیجه یک پرتاب تاس: {single_roll}")
# بررسی عضویت در رویداد
if single_roll in event_even:
print("رویداد 'عدد زوج' رخ داد.")
else:
print("رویداد 'عدد زوج' رخ نداد.")
# محاسبه احتمال نظری
prob_theoretical = len(event_even) / len(sample_space)
print(f"\nاحتمال نظری آمدن عدد زوج: {prob_theoretical:.2f} یا {prob_theoretical*100:.0f}%")
# تخمین احتمال با شبیهسازی (روش مونت کارلو)
num_simulations = 10000
count_even = 0
for _ in range(num_simulations):
roll = random.choice(sample_space)
if roll in event_even:
count_even += 1
prob_simulated = count_even / num_simulations
print(f"احتمال تخمینزدهشده با {num_simulations} شبیهسازی: {prob_simulated:.4f}")
خروجی نمونه برنامه:
نتیجه یک پرتاب تاس: 4
رویداد 'عدد زوج' رخ داد.
احتمال نظری آمدن عدد زوج: 0.50 یا 50%
احتمال تخمینزدهشده با 10000 شبیهسازی: 0.5023
در این بخش، با تعریف احتمال و فضای نمونه آشنا شدیم. احتمال نظری را محاسبه کردیم و سپس با استفاده از برنامهنویسی و تولید اعداد تصادفی، احتمال را به صورت عملی و با روش شبیهسازی تخمین زدیم. این پایهایترین گام برای ورود به دنیای احتمال در برنامهنویسی است.
برای ثبت پرسش ابتدا در سایت وارد شوید.