Programmer – Telegram
Programmer
388 subscribers
45 photos
37 videos
29 files
72 links
این کانال در حوزه های وب ، رباتیک، هوش مصنوعی، ربات تلگرام و... فعالیت دارد، به طور کلی سعی دارم جزوات، کتاب ها و مقالاتی که مطالعه کردم رو با شما به اشتراک بذارم

گروه مربوط به هوش مصنوعی 👇

https://news.1rj.ru/str/Artificial_Intelligence21
Download Telegram
دوره ی mlops با تخفیف ۷۰ درصد هم اکنون در سایت مکتب خونه منتشر شده این تخفیف حداکثر تا اخر شب فعال هستش

https://mktb.me/ejee/

برای اطلاعات بیشتر به آیدی زیر پیام دهید 🙏🌹

@reza_Mahmooudi
🤩21👌1
This media is not supported in your browser
VIEW IN TELEGRAM
مدار چشمک زن

دیود ها قطعات کاربردی و جالبی هستن، اگر به منبع تغذیه DC وصل بشه بر اساس وصل شدنش به سر مثبت و منفی میتونه نقش کلید باز یا بسته رو ایفا کنه
ولی همین قطعه اگر به منبع تغذیه AC وصل بشه شروع به قطع و وصل کردن جریان از مدار می کنه
تو ویدئو می‌بینید که led داره خاموش و روشن میشه یا به اصطلاح چشمک میزنه 👁️

ی قطعه باید داخل این مدار باشه که نیست، حدس بزنید اون قطعه چیه 😁🤝
4👌2🦄21
This media is not supported in your browser
VIEW IN TELEGRAM
ی صفحه html و css ساده، تمرین خوبیه به نظرم 🤝😎
3🥰2👌1🏆1
This media is not supported in your browser
VIEW IN TELEGRAM
قسمت آخر opencv رو هم فردا بذارم میریم سراغ کتابخونه های جذاب دیگه مثل این کتابخونه 😎😎😎🌹🌹
2😍2🦄2🔥1🤩1
Programmer
آموزش Opencv - بخش دوم ( قسمت دوم) ۱. ایجاد یک تصویر خالی سه حالت اصلی برای ایجاد تصویر داریم: import cv2 import numpy as np import random # تصویر مشکی img_black = np.zeros((500, 500, 3), dtype=np.uint8) # تصویر سفید img_white = np.ones((500, 500, 3),…
آموزش Open cv - بخش دوم ( قسمت آخر)

نوشتن متن و تاریخ/ساعت روی تصویر و ویدیو با OpenCV


✍️ نوشتن متن روی تصویر
import cv2

# خواندن تصویر
img = cv2.imread("image.jpg")

# نوشتن متن روی تصویر

cv2.putText(img, "Hello OpenCV", (50, 50), cv2.FONT_HERSHEY_SIMPLEX,
1, (0, 255, 0), 2, cv2.LINE_AA)

# نمایش تصویر

cv2.imshow("Text Image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

📌 توضیح:

(50, 50) مختصات شروع متن هست.

(0, 255, 0) رنگ سبز (به صورت BGR).

1 اندازه فونت و 2 ضخامت متن.

📸 نمایش تاریخ و ساعت روی تصویر
import cv2
import datetime

img = cv2.imread("image.jpg")

# گرفتن تاریخ و ساعت جاری
dt = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")

# نوشتن تاریخ و ساعت روی تصویر
cv2.putText(img, dt, (10, 30), cv2.FONT_HERSHEY_SIMPLEX,
1, (255, 0, 0), 2, cv2.LINE_AA)

cv2.imshow("Image with DateTime", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

🎥 نمایش تاریخ و ساعت روی ویدیو
import cv2
import datetime

cap = cv2.VideoCapture(0) # برای وبکم یا نام فایل مثل "video.mp4"

while True:
ret, frame = cap.read()
if not ret:
break

# گرفتن زمان جاری
dt = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")

# نوشتن روی فریم
cv2.putText(frame, dt, (10, 30), cv2.FONT_HERSHEY_SIMPLEX,
0.7, (0, 255, 255), 2, cv2.LINE_AA)

cv2.imshow("Video with DateTime", frame)

# خروج با کلید q
if cv2.waitKey(1) & 0xFF == ord("q"):
break

cap.release()
cv2.destroyAllWindows()

نکته‌ها

مختصات (10, 30) رو می‌تونی تغییر بدی تا متن جای دیگه ظاهر بشه.

رنگ‌ها به صورت (B, G, R) هستن.

برای نمایش فقط ساعت از این استفاده کن:


dt = datetime.datetime.now().strftime("%H:%M:%S")

#Python #programmer #opencv #پایتون
4🥰21👍1
ComfyUI (Comfy.org)

چی هست؟

در ComfyUI یک پلتفرم متن‌باز (رایگان، نامحدود) و نُدمحور برای تولید محتوای هوش مصنوعی است. باهاش می‌تونی تصویر، ویدیو، 3D و صدا بسازی. تمام فرایند بصری است و می‌توانی با کشیدن و وصل کردن نُدها، جریان تولید را کامل کنترل کنی.

چه کار می‌کند؟

تولید تصاویر با مدل‌های AI (مثل Stable Diffusion)

تولید ویدیو کوتاه یا متحرک

ایجاد 3D و محتوای صوتی

امکان ذخیره و اشتراک‌گذاری Workflowها

پیش‌نمایش زنده و تغییرات فوری

سخت‌افزار پیشنهادی:

GPU: NVIDIA RTX 30/40/50

(حداقل  4GB VRAM، برای پروژه‌های سنگین 8_16 GB)

RAM: حداقل 16 GB (پیشنهاد 32 GB)

CPU: هر پردازنده مدرن کافی است

فضای ذخیره‌سازی: SSD با حداقل 10–40 GB برای نصب و چند صد GB برای مدل‌ها

نرم‌افزار هایی که باید نصب بشن :

Python 3.10–3.12

PyTorch 2.7+ (با پشتیبانی از CUDA برای GPUهای NVIDIA)

CUDA / cuDNN برای شتاب‌دهی GPU (NVIDIA)

Git برای نصب افزونه‌ها و مدیریت مخزن

💡 نکته: اگر GPU ضعیف داری می‌توانی با گزینه --cpu اجرا کنی اما خیلی کند خواهد بود.

📌 لینک رسمی: comfy.org

🖼️ گالری
2🙏21❤‍🔥1😍1
Programmer
قسمت آخر opencv رو هم فردا بذارم میریم سراغ کتابخونه های جذاب دیگه مثل این کتابخونه 😎😎😎🌹🌹
جزوه ی کتاب‌خونه ی جدید رو براتون نوشتم

توضیحات :

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

⬇️ دانلود
3🦄21💘1
شنیدم نتايج کنکور اومده، امیدوارم خوش خبر باشید همگی 🌹🌹🌹

به دوستانی هم که دارن ایام امتحانات رو می گذرونن خسته نباشید میگم، ترم طولانیی بود، امیدوارم موفق باشید 🙏🌹
🦄32😍21👎1
📄 لیست مباحث قرار داده شده در کانال :

ایمیل و راه ارتباطی

artemisasadi454@gmail.com

گروه ها ی تمرین، پرسش و پاسخ :

🤖گروه رباتیک

🧑‍💻گروه هوش مصنوعی

____

مجموعه جزوات :

📚مجموعه جزوات و آموزش های طراحی سایت

📚مجموعه جزوات و کتاب های هوش مصنوعی

📚 جزوه ی ریاضی برای هوش مصنوعی

🔧جزوه ی رفع مشکل npm

📚جزوه ی github

📚جزوه ی Prompt نویسی

📚آموزش ربات نویسی تلگرام

📚جزوه web scraping

📚کتاب 133 گجت برای هک

🧑‍💻ساخت ی چت بات با apikey gmini

🧑‍💻جزوه ی cpanel

🧑‍💻جزوه ی داکر

🧑‍💻 جزوه ی Opencv-part2

🧑‍💻جزوه ی Pytorch part1

🧑‍💻جزوه‌ ی ROS
____

💡پروژه ها :

🎨قالب سایت خفاش

🎨 قالب سایت دریا

🎨طراحی چرخ دنده ( سایت)

🎨طراحی اتم ( سایت)

🎨طراحی سایت منو

🎨طراحی سایت گالری

🤖بات تلگرام

🤖چت بات هوش مصنوعی تلگرام

🤖چت بات هوش مصنوعی ( همراه با دیتاست)

🧑‍💻 ترجمه ی متن از انگلیسی به فارسی

🗣️ تبدیل صدا به متن

😍 تحلیل احساسات

💬 ضبط و ترجمه ی صدای دسک‌تاپ

👁️‍🗨️ تشخیص اشیاء

📚 آموزش و تشخیص چهره

🧑‍🏫کد Stt-en
5👌2🏆1
Programmer pinned «📄 لیست مباحث قرار داده شده در کانال : ایمیل و راه ارتباطی artemisasadi454@gmail.com گروه ها ی تمرین، پرسش و پاسخ : 🤖گروه رباتیک 🧑‍💻گروه هوش مصنوعی ____ مجموعه جزوات : 📚مجموعه جزوات و آموزش های طراحی سایت 📚مجموعه جزوات و کتاب های هوش مصنوعی 📚»
Forwarded from Artemis
Whisper.ipynb
165 KB
یک فایل صوتی WAV رو از کاربر دریافت می‌کنه و با استفاده از مدل
Whisper (vhdm/whisper-large-fa-v1)
فایل صوتی رو به متن تبدیل می کنه نکته حتما wav باشه و اینکه سعی کنید فایل صوتی با کیفیت باشه تا نتیجه ی بهتری بگیرید
71
🚀 کسب درآمد دلاری از سایت‌های معتبر
با کمک مقاله نویسی و طراحی سایت

ThemeForest

فروش قالب و پوسته‌های وب‌سایت و وردپرس

Creative Market

بازار طرح‌های گرافیکی، فونت و عکس

MonsterOne

اشتراک قالب‌ها و منابع طراحی آماده

StudyPool

پاسخ به سؤالات و پروژه‌های درسی

Gumroad

فروش کتاب، دوره، فایل و محصولات دیجیتال

Teachers Pay Teachers


فروش فایل‌های آموزشی برای معلم‌ها

Payhip


فروش ساده محصولات دیجیتال یا فیزیکی

Medium Partner Program

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

Docmerit


فروش جزوه‌ها، مقالات و محتوای آموزشی

⚠️ نکته مهم: برای دریافت درآمد نیاز به حساب بین‌المللی (مثل PayPal) دارید و باید روی کیفیت محتوا و بازاریابی هم تمرکز کنی.
2🤩1
arduino.pdf
3.7 MB
اردوینو و دنیای IoT به زبان ساده

اردوینو (Arduino) یک پلتفرم سخت‌افزاری و نرم‌افزاری متن‌بازه که به شما اجازه می‌ده که پروژه‌های الکترونیکی و رباتیک بسازید. می‌تونید سنسورها و موتورها رو کنترل کنید و سیستم‌های هوشمند طراحی کنید.

برای ارتباط با پایتون می‌تونید از کتابخانه‌ی pyserial استفاده کنید؛ این کتابخانه امکان ارسال و دریافت داده‌ها بین پایتون و اردوینو از طریق پورت سریال رو فراهم می‌کنه.

برای کنترل اردوینو از طریق موبایل، می‌توانید از بلوتوث (با ماژول‌هایی مثل HC-05/HC-06) یا Wi-Fi (با ESP8266/ESP32) استفاده کنید. در حالت Wi-Fi می‌تونید اپ موبایل یا وب بسازید و از طریق HTTP یا WebSocket به ماژول فرمان بدین.

برای توسعه سریع‌تر و کم‌کد، می‌توانید از Low-code IoT cloud platforms استفاده کنید که تجربه کاربری محور هستن و امکان ساخت اپ‌های موبایل و وب IoT کاملاً سفارشی را فراهم می‌کنن. این پلتفرم‌ها به شما اجازه می‌دهن میلیون‌ها دستگاه را امن مدیریت و کنترل کنید، بدون نیاز به نوشتن کد پیچیده.
6🌚4
java.pdf
2.2 MB
جزوه ی جاوا اماده شد 🌹🌹🌹
8🦄21🤩1
از مشکلات ما...
🤣10👍21
📚 مقالک

📘 آموزش نصب Ubuntu روی ویندوز (WSL2)

اول از همه باید WSL رو نصب کنیم.
برای دوستانی که قبلاً با Docker کار کردن، WSL آشناست.اما فرض رو بر این می‌گیریم که هنوز نصبش نکردین

⚙️ مرحله 1: بررسی پیش‌نیازها

ویندوز باید یکی از این نسخه‌ها باشه:

Windows 10 Version 2004 (Build 19041) یا بالاتر

Windows 11

برای چک کردن نسخه ویندوز:

1️⃣ دکمه‌ی Windows + R رو بزن
2️⃣ بنویس winver و Enter بزن
3️⃣ نسخه و Build ویندوز رو ببین

📌 اگه کمتر از 19041 بود، باید ویندوزت رو آپدیت کنی.

⚙️ مرحله 2: فعال‌سازی WSL از طریق PowerShell

🔹 روی منوی Start کلیک کن و بنویس PowerShell
🔹 روی گزینه‌ی Windows PowerShell راست‌کلیک کن و بزن Run as administrator

سپس دستور زیر رو وارد کن و Enter بزن:
wsl --install

این دستور به‌صورت خودکار:

ویژگی‌های لازم رو فعال می‌کنه

آخرین نسخه‌ی WSL (معمولاً WSL2) رو نصب می‌کنه

توزیع Ubuntu رو به‌صورت پیش‌فرض دانلود و نصب می‌کنه

🔸 اگه نصب شد، باید در منوی Start آیکون Ubuntu رو ببینی.
در غیر این صورت، مراحل زیر رو ادامه بده

💡 فعال‌سازی Virtualization (VT-x / SVM)

برای اجرای WSL2 نیاز داری که Virtualization (VT-x / SVM) در BIOS فعال باشه.

🔹 سیستم رو Restart کن و یکی از کلیدهای زیر رو برای ورود به BIOS بزن:

> F2 / Delete / F10

(بسته به مدل لپ‌تاپ یا مادربرد فرق داره)

🔹 در بخش Advanced یا Configuration گزینه‌ی زیر رو پیدا کن و روی Enabled بذار:
> Intel Virtualization Technology / VT-x

یا برای پردازنده‌های AMD: SVM Mod

با کلید F10 ذخیره و خارج شو.

بعد از بوت شدن ویندوز، وارد Task Manager شو و در بخش Performance → CPU مطمئن شو نوشته:
> Virtualization: Enabled

⚙️ مرحله 3: نصب دستی Ubuntu از PowerShell

1️⃣ اول PowerShell رو به عنوان Administrator باز کن و بزن:
wsl.exe --install --no-distribution

2️⃣ سیستم رو ری‌استارت کن.

3️⃣ بعد از ری‌استارت، در PowerShell دستور زیر رو اجرا کن:
wsl --install -d Ubuntu

📥 صبر کن تا دانلود و نصب تموم بشه.

⚙️ مرحله 4: اجرای Ubuntu

4️⃣ از منوی Start برنامه‌ی Ubuntu رو باز کن.
وقتی اجرا شد، ازت می‌خواد:

یه نام کاربری (username) وارد کنی

یه رمز عبور (password) تعیین کنی
3😍2
Media is too big
VIEW IN TELEGRAM
تحلیل کتابخونه ی deepFace :

این کتابخونه ی سبک پایتون برای تشخیص چهره، تحلیل احساسات، سن، جنسیت و نژاد استفاده میشه

حالت ساده (default mode): در حالت پیش‌فرض، DeepFace از detector OpenCV استفاده می‌کنه که سریع هست اما دقتش در تشخیص چهره‌های پیچیده (مثل زاویه‌های بد یا نور کم) پایین‌تره. این می‌تونه باعث بشه تشخیص "سخت" به نظر برسه، چون alignment و normalization کامل انجام نمی‌شه

گریدبندی (grid-like یا advanced mode): grid search برای انتخاب بهترین مدل detector یا handle کردن multiple faces (مثل تابع find که نتایج رو به صورت DataFrame برمی‌گردونه) هست، مثلاً با RetinaFace یا MTCNN (که دقت بالاتر میره اما کندتر میشه مدل )

بخاطر همین پیشنهاد استفاده از MediaPipe هستش :

خودش از MediaPipe به عنوان یکی از detectorهای داخلی‌ش پشتیبانی می‌کنه. یعنی نیازی نیست دستی ترکیب کنی و سرعت رو از دست بدی؛ فقط با تنظیم
detector_backend='mediapipe'

می‌تونی ازش استفاده کنی. این کار تشخیص اولیه چهره رو سریع‌تر می‌کنه
🦄322👌2🕊1
Programmer
تحلیل کتابخونه ی deepFace : این کتابخونه ی سبک پایتون برای تشخیص چهره، تحلیل احساسات، سن، جنسیت و نژاد استفاده میشه حالت ساده (default mode): در حالت پیش‌فرض، DeepFace از detector OpenCV استفاده می‌کنه که سریع هست اما دقتش در تشخیص چهره‌های پیچیده (مثل…
تشخیص احساسات :

در این کد چهره ی شما توسط دوربین گرفته میشه و حس لحظه ای شما رو در بالای تصویر سمت چپ می نویسه و با زدن دکمه ی q از کیبورد از صفحه خارج میشه

کدش رو با تنظیماتی که توضیح دادم، براتون قرار میدم، حتما تست کنید و نتیجه رو بهم بگید

برای نصب

pip install opencv-python deepface mediapipe tensorflow

CODE

import cv2
from deepface import DeepFace

# باز کردن وب‌کم
cap = cv2.VideoCapture(0)

# بررسی اینکه وب‌کم به درستی باز شده باشد
if not cap.isOpened():
    print("خطا: نمی‌توان وب‌کم را باز کرد.")
    exit()

while True:
    # خواندن فریم از وب‌کم
    ret, frame = cap.read()
    if not ret:
        print("خطا: نمی‌توان فریم را خواند.")
        break

    try:
        # تحلیل احساسات با DeepFace و backend = MediaPipe
        result = DeepFace.analyze(
            img_path=frame,
            actions=['emotion'],
            detector_backend='mediapipe',
            enforce_detection=False
        )

        # دریافت احساس غالب
        dominant_emotion = result[0]['dominant_emotion']

        # افزودن متن احساس غالب به فریم
        cv2.putText(frame, dominant_emotion, (20, 50),
                    cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)

    except Exception as e:
        print(f"خطا در تحلیل احساسات: {e}")
        continue

    # نمایش فریم
    cv2.imshow("Emotion Detection", frame)

    # خروج با فشار دادن کلید 'q'
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# آزادسازی منابع
cap.release()
cv2.destroyAllWindows()
🔥32👌1
📚مقالک

داکر چیه؟

فرض کن یه برنامه‌نویس یه اپ نوشته (مثلاً یه سایت یا یه ربات)، حالا می‌خواد بده به تو تا روی سیستم خودت اجراش کنی.
اما تو که اجراش می‌کنی، ارور می‌ده! چون مثلاً نسخه‌ی پایتون فرق داره، یا یه کتابخونه نصب نیست، یا سیستم‌عامل فرق داره.

اینجا داکر وارد میشه!
داکر یه ابزار برای ساخت "بسته‌ی قابل حمل" از برنامته.
یعنی داکر برنامت رو به‌همراه همه‌ی وابستگی‌هاش (مثل سیستم‌عامل، کتابخونه‌ها، تنظیمات و نسخه‌ها) توی یه محیط بسته به نام کانتینر (Container) قرار می‌ده.

توسعه‌دهندگان داکر و فرصت‌های شغلی

🔹 چرا مهارت در داکر ارزشمنده؟

در دنیای فناوری امروز، شرکت‌ها به‌دنبال افزایش سرعت، مقیاس‌پذیری و کارایی در توسعه و اجرای نرم‌افزارها هستن.
اینجاست که داکر نقش کلیدی داره، چون با استفاده از کانتینرها، میشه:

• برنامه‌ها رو راحت‌تر انتقال و اجرا کرد،
• منابع سرور رو بهتر مدیریت کرد،
• و فرایند توسعه تا استقرار (DevOps) رو سریع‌تر و هماهنگ‌تر انجام داد.

بنابراین، مهندسانی که بتونن برنامه‌ها رو داکرایز (Dockerize) کنن، یعنی اونا رو داخل کانتینر قرار بدن، و همچنین در زمینه‌ی مدیریت و مانیتورینگ کانتینرها مهارت داشته باشن، الان خیلی پرطرفدار هستن.

🔹 تقاضای بازار کار

با توجه به اینکه شرکت‌های بیشتری به سمت کانتینریزاسیون (Containerization) میرن، نیاز به متخصصان داکر مدام داره زیاد میشه — مخصوصاً در حوزه‌هایی مثل:

• DevOps و Cloud Engineering
• Backend Development
• Infrastructure Automation
• Site Reliability Engineering (SRE)

شرکت‌های بزرگ فناوری، استارتاپ‌ها و سازمان‌های ابری (مثل AWS، Google Cloud، Azure) به‌طور فعال دنبال افراد با مهارت داکر هستن.

💰 انتظارات حقوق و دستمزد

بر اساس داده‌های گزارش‌های شغلی:

🔸 مبتدی‌ها (Junior / Entry-level): حدود ۷۰ تا ۹۰ هزار دلار در سال

🔸 توسعه‌دهندگان میان‌رده: حدود ۹۰ تا ۱۳۰ هزار دلار در سال

🔸 متخصصان ارشد یا DevOps Engineers حرفه‌ای: بیش از ۱۵۰ هزار دلار در سال

البته این اعداد بسته به کشور، شهر، نوع شرکت و سطح تجربه متغیرن.
در کشورهای پیشرفته (مثل آمریکا، کانادا، آلمان و استرالیا) تقاضا و حقوق به‌مراتب بالاتره.
81🎅1
📚مقالک ( کدوم الگوریتم بهتره)

خب Big O چیست؟

مبحث Big O Notation : یک روش ریاضی است برای اینکه بفهمیم یک الگوریتم چقدر سریع یا کند رشد می‌کند وقتی ورودی زیاد می‌شود.

یعنی می‌خواهیم بدانیم:

> «اگر تعداد داده‌ها زیاد شود، زمان اجرای برنامه چطور تغییر می‌کند؟»

🎯 هدف Big O

وقتی برنامه‌ای می‌نویسی، فقط مهم نیست که کار کند؛ مهم است که با داده زیاد هم خوب کار کند.

مثلاً فرض کن برنامه‌ای داری که لیستی از اسامی را می‌گیرد و دنبال یک اسم خاص می‌گردد.
اگر لیست ۵ تا اسم باشد، فرقی نمی‌کند، اما اگر لیست ۵ میلیون اسم باشد، حالا مهم می‌شود که الگوریتمت چقدر کارآمد است.

اینجاست که Big O وارد می‌شود تا رشد زمان را توصیف کند.


💡 ایده اصلی:

در Big O، ما به مقادیر بزرگ n (یعنی ورودی زیاد) نگاه می‌کنیم.
و فقط به رشد تابع توجه داریم، نه عدد دقیق.

مثلاً:

ما عددهای ثابت (مثل +5 یا ×2) را نادیده می‌گیریم چون با افزایش داده تأثیر زیادی ندارند.

🔢 مثال ۱: ثابت (O(1))

فرض کن در یک آرایه به یک خانه خاص دسترسی پیدا می‌کنی:
arr = [10, 20, 30, 40]
print(arr[2])

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

زمان همیشه ثابت است → O(1)

📘 یعنی با بزرگ شدن داده، زمان تغییر نمی‌کند.

🔁 مثال ۲: خطی (O(n))

فرض کن بخواهی تمام عناصر آرایه را جمع بزنی:
sum = 0
for num in arr:
sum += num

اگر آرایه ۱۰ تا عدد دارد، حلقه ۱۰ بار اجرا می‌شود.
اگر ۱۰۰ تا عدد دارد، حلقه ۱۰۰ بار اجرا می‌شود.

زمان با اندازه داده افزایش می‌یابد → O(n)

📘 یعنی اگر ورودی دو برابر شود، زمان هم دو برابر می‌شود.

🔁 مثال ۳: درجه دوم (O(n²))

فرض کن در آرایه دو حلقه تودرتو داری:

for i in arr:
for j in arr:
print(i, j)

اگر آرایه ۱۰ تا عنصر دارد → ۱۰×۱۰ = ۱۰۰ تکرار
اگر ۱۰۰ تا عنصر دارد → ۱۰۰×۱۰۰ = ۱۰,۰۰۰ تکرار

زمان به صورت n² رشد می‌کند → O(n²)

📘 یعنی با دو برابر شدن داده، زمان چهار برابر می‌شود.


🧮 مثال ۴: لگاریتمی (O(log n))

فرض کن عددی را در لیست مرتب جستجو می‌کنی (مثل جستجوی دودویی):

# Binary Search

در هر گام، لیست را نصف می‌کنی.
اگر ۱۰۰۰ تا داده داری:

مرحله ۱ → نصف می‌کنی (۵۰۰)

مرحله ۲ → نصف (۲۵۰)

مرحله ۳ → نصف (۱۲۵) ... تا زمانی که برسد به ۱

تعداد مراحل تقریباً log₂(n) است.

رشد بسیار آرام دارد → O(log n)

📘 یعنی حتی اگر داده میلیون‌برابر شود، فقط چند گام بیشتر طول می‌کشد.

🌀 مثال ۵: فاکتوریلی (O(n!))

فرض کن می‌خواهی همه‌ی حالت‌های ممکن را امتحان کنی (مثل مرتب کردن همه‌ی ترکیب‌های یک لیست).
مثلاً برای ۵ عنصر، حالت‌ها می‌شود:

5 × 4 × 3 × 2 × 1 = 120

و برای ۱۰ عنصر:

10! = 3,628,800

رشد بسیار وحشتناک سریع دارد → O(n!)

📘 یعنی این نوع الگوریتم برای داده زیاد تقریباً غیرممکن است.

📊 مقایسه‌ی رشد زمان‌ها

نوع نام توضیح کوتاه سرعت

O(1)
ثابت مستقل از داده خیلی سریع
O(log n)
لگاریتمی رشد خیلی کند عالی
O(n)
خطی متناسب با داده 🙂 متوسط
O(n log n)

شبه‌خطی کمی کندتر از خطی 😐 قابل قبول
O(n²)
درجه دوم رشد شدید 🐢 کند
O(2ⁿ)

نمایی رشد انفجاری 🧨 بسیار کند
O(n!)

فاکتوریلی حالت‌های ممکن 💀 غیرعملی

برای Big O مقایسه‌ی الگوریتم‌هاست، نه اندازه‌گیری دقیق زمان.
ما می‌خواهیم بدانیم با بزرگ شدن ورودی، الگوریتم چه رفتاری دارد:

اگر رشد کند باشد → الگوریتم خوب

اگر رشد سریع باشد → الگوریتم ضعیف
7👍2