[ "𝐍𝐨𝐯𝐚 𝐂𝐨𝐝𝐞" ]
139 subscribers
10 photos
Nova Code 🚀
Learn. Build. Create.
🐍 Python | 🤖 AI

📩 09223238277
Telegram & bale : @Ftme_Barzgrr
Telegram & bale : @NovaCode_Academy
Instagram : @novacode_academyy

Anonymous : t.me/HidenChat_Bot?start=925979260
Download Telegram
🎲 کامپیوتر چطوری عدد تصادفی می‌سازه؟

فرض کن می‌خوای با پایتون یه تاس بندازی. می‌نویسی:

import random

print(random.randint(1, 6))

ممکنه خروجی 4 باشه.
دفعه‌ی بعد 2، بعد 6...

اما یه سؤال جالب:

کامپیوتر که خودش شانس نداره، پس این عددها رو از کجا میاره؟ 🤔

🧠 اول یه تفاوت مهم

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

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

به این‌ها می‌گیم:

Pseudo-Random Numbers
یعنی اعداد شبه‌تصادفی.

🎯 حالا الگوریتم چطور کار می‌کنه؟

فرض کن یه دستگاه داریم که یه عدد اولیه می‌گیره و هر بار عدد بعدی رو از روی قبلی می‌سازه:

مثلاً یه الگوریتم خیلی ساده می‌تونه این باشه:

عدد بعدی = (عدد قبلی × 5 + 1) % 16

علامت % یعنی باقی‌مانده‌ی تقسیم.

پس اگر عدد اولیه 3 باشه:

عدد اول:   3
عدد بعدی: (3 × 5 + 1) % 16 = 0
عدد بعدی: (0 × 5 + 1) % 16 = 1
عدد بعدی: (1 × 5 + 1) % 16 = 6
عدد بعدی: (6 × 5 + 1) % 16 = 15

می‌بینی؟ 😮

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

🐍 حالا همین ایده رو با پایتون ببینیم

def pseudo_random(seed, count):
numbers = []

for _ in range(count):
seed = (seed * 5 + 1) % 16
numbers.append(seed)

return numbers


print(pseudo_random(3, 10))

خروجی:

[0, 1, 6, 15, 12, 13, 2, 11, 8, 9]

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

پس Seed چیه؟
یعنی نقطه‌ی شروع الگوریتم

اگر Seed رو ثابت کنیم، دنباله‌ی عددها هم ثابت می‌شه:

import random

random.seed(42)

print(random.randint(1, 6))
print(random.randint(1, 6))
print(random.randint(1, 6))

حالا همین کد رو دوباره اجرا کن؛ همون سه عدد رو می‌بینی!

چرا؟ چون کامپیوتر از همون نقطه‌ی شروع، همون محاسبات رو دوباره انجام می‌ده.

> تصادفی به نظر می‌رسه، ولی قابل‌تکراره. 🧠

🔐 یه نکته‌ی خیلی مهم

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

پس پشت خیلی از چیزهایی که تصادفی به نظر می‌رسن، یه الگوریتم دقیق نشسته! 🐍

#NovaCode #Python #Programming #ComputerScience #RandomNumbers #PythonTutorial #AI
❤5