algoroots
105 subscribers
5 photos
2 videos
5 files
6 links
جایی برای تقویت ذهن الگوریتمی با
الگوریتم های کاربردی در حوزه های جذاب
Download Telegram
Channel name was changed to «algoroots»
1. دروازه ورود (زبان برنامه‌نویسی) به دنیای رمزنگاری

انتخاب زبان:

🐍 Python – آسان، سریع، افسونگر

⚙️ C/C++ – عمیق و پرقدرت

🦀 Rust – امن، مدرن، سایه‌نشین

---

2. هنر تاریک اعداد (ریاضیات)

تسلط بر:

Mod، الگوریتم اقلیدس، اعداد اول

ماتریس‌ها، جبر خطی، احتمال
---

3. رمزنگاری کلاسیک

شروع با رمزهای اولیه:

Caesar, Vigenère, XOR, Hill

---

4. هنر مدرن (رمزنگاری پیشرفته)

تسلط بر:

AES, RSA, ECC, SHA-256


هر الگوریتم دفاع یا تهاجم

---

5. کتابخانه‌ها

cryptography, pycryptodome

OpenSSL, RustCrypto


---

6. دنیای واقعی

TLS, امضای دیجیتال، بلاک‌چین


اینجا مرز تاریکی و روشناییه...




---

7. تجربه

Cryptopals، HackTheBox

ساخت رمزنگار، پیام‌رسان، RSA

---

8.منابع ناب

📘 Understanding Cryptography

🎓 Coursera: Crypto I (Stanford)

---
2
prime_numbers = []

for num in range(2, 101):
is_prime = True


for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
is_prime = False
break


if is_prime:
prime_numbers.append(num)


print("Prime numbers between 1 and 100:")
print(prime_numbers)
import numpy as np
class LinearRegressionGD:
    def init(self, learning_rate=0.01, n_iters=1000):
        self.learning_rate = learning_rate
        self.n_iters = n_iters
        self.weights = None
        self.bias = None

    def fit(self, X, y):
     
        n_samples, n_features = X.shape
       
       
        self.weights = np.zeros(n_features)
        self.bias = 0
       
       
        for _ in range(self.n_iters):
            y_predicted = np.dot(X, self.weights) + self.bias
           
           
            dw = (1 / n_samples) * np.dot(X.T, (y_predicted - y))
            db = (1 / n_samples) * np.sum(y_predicted - y)
          
            self.weights -= self.learning_rate * dw
            self.bias -= self.learning_rate * db

    def predict(self, X):
        return np.dot(X, self.weights) + self.bias

if name == "main":
  
    X = np.array([[1, 2], [2, 3], [4, 5], [3, 6]])
    y = np.array([6, 8, 14, 13])
   
    model = LinearRegressionGD(learning_rate=0.01, n_iters=1000)
    model.fit(X, y)
    predictions = model.predict(X)
   
    print("Weights:", model.weights)
    print("Bias:", model.bias)
    print("Predictions:", predictions)
1
💻دسته بندی مبانیه یادگیریه ماشین:

1. یادگیری تحت نظارت
داده با برچسب؛ مدل یاد می‌گیرد پیش‌بینی کند (مثلاً طبقه‌بندی و رگرسیون)


2. یادگیری بدون نظارت
داده بدون برچسب مدل ساختار یا گروه‌بندی کشف می‌کند (مثلاً خوشه‌بندی)


3. یادگیری نیمه‌نظارت‌شده
ترکیبی از داده با و بدون برچسب برای یادگیری.


4. یادگیری تقویتی
عامل با دریافت پاداش یا جریمه یاد می‌گیرد بهترین تصمیم را بگیرد.


5. یادگیری عمیق
استفاده از شبکه‌های عصبی بزرگ برای داده‌های پیچیده (تصویر، صوت، متن)
1
def chatbot_mood(mood):
if mood > 8:
return "Alright! Let's chat all day! "
elif mood > 5:
return "Hmm... I guess I can talk a little. "
elif mood > 3:
return "Ugh, do we have to? "
elif mood > 1:
return "Can we skip this? I'm tired... "
else:
return "Nope. Not talking. Go away! "

def main():
try:
mood = int(input("Rate my mood from 0 (dead inside) to 10 (super happy): "))
print("Chatbot says:", chatbot_mood(mood))
if mood < 3:
print("(Psst... even bots need coffee sometimes )")
except ValueError:
print("Hey, I asked for a number, not whatever that was!")

if __name__ == "__main__":
main()
2
چرا سی پلاس پلاس دوسته مهندسینه؟

سرعت بالا و کارایی: حل سریع معادلات پیچیده مثل شبیه‌سازی جریان هوا روی بال هواپیما (CFD)

کنترل حافظه: مدیریت بهینه منابع در شبیه‌سازی رفتار مواد در تحلیل تنش سازه‌ها

کتابخانه‌های تخصصی: استفاده از Eigen برای حل مسائل جبر خطی در مدل‌سازی ساختارها

موازی‌سازی: اجرای شبیه‌سازی‌های سنگین به صورت هم‌زمان با OpenMP برای افزایش سرعت

ادغام با سخت‌افزار: شبیه‌سازی و کنترل ربات‌های صنعتی در زمان واقعی
#Cpp
1
🔐الگوریتم RSA چیست؟

RSA یکی از الگوریتم‌های رمزنگاری نامتقارن (کلید عمومی) است که برای رمزنگاری، رمزگشایی و امضای دیجیتال استفاده می‌شود. نام آن از سه دانشمند گرفته شده: Rivest, Shamir, Adleman.
.......

📌 کاربردهای اصلی RSA:

ارسال پیام امن در اینترنت

رمزنگاری ایمیل یا فایل‌ها

تأیید هویت دیجیتال (Digital Signature)

رمزنگاری کلیدها در SSL/TLS (امن‌سازی وب)



........

چطور کار می‌کند؟

الگوریتم RSA از دو کلید استفاده می‌کند:

کلید عمومی: برای رمزگذاری (همه می‌توانند داشته باشند)

کلید خصوصی: برای رمزگشایی (فقط صاحب اصلی دارد)
2
import random
from math import gcd

def modinv(a, m):
for x in range(1, m):
if (a * x) % m == 1:
return x
raise Exception('Modular inverse does not exist.')

def generate_keys():
p = 17
q = 23
n = p * q
phi = (p - 1) * (q - 1)
e = 3
while gcd(e, phi) != 1:
e += 2
d = modinv(e, phi)
return (e, n), (d, n)

def encrypt(public_key, plaintext):
e, n = public_key
return [pow(ord(char), e, n) for char in plaintext]

def decrypt(private_key, ciphertext):
d, n = private_key
return ''.join([chr(pow(char, d, n)) for char in ciphertext])

public, private = generate_keys()

message = "Hi"
cipher = encrypt(public, message)
decrypted = decrypt(private, cipher)

print("Public key:", public)
print("Private key:", private)
print("Original:", message)
print("Encrypted:", cipher)
print("Decrypted:", decrypted)
2
💰برنامه نویسی بلاک چین با پایتون :

1. یادگیری مفاهیم پایه بلاک‌چین

بلاک و زنجیره بلاک‌ها
هشینگ (SHA-256)
بلاک Genesis
اثبات کار (Proof of Work)

2. تعریف ساختار بلاک

مشخص کردن فیلدهای بلاک (index, timestamp, data, previous_hash, hash, nonce)


3. ایجاد کلاس بلاک‌چین

ساخت بلاک Genesis
افزودن تابع محاسبه هش بلاک
افزودن تابع اضافه کردن بلاک جدید


4. پیاده‌سازی اثبات کار (Proof of Work)

ایجاد تابع ماینینگ با شرط هش (مثلاً شروع با چند صفر)
#Blockchain
2
انواع رگرسیون در machine learning :

1. رگرسیون خطی ساده

◽️رابطه خطی بین یک متغیر مستقل و یک متغیر وابسته

2. رگرسیون خطی چندگانه (Multiple Linear)

◽️چند متغیر مستقل برای پیش‌بینی یک خروجی

3. رگرسیون پلی‌نومیال (Polynomial)

◽️مدل‌سازی رابطه‌های غیرخطی با توان‌های بالاتر


4. رگرسیون لجستیک (Logistic)

◽️برای دسته‌بندی (خروجی بین 0 و 1)، نه مقدار عددی


5. رگرسیون Ridge

◽️رگرسیون با جریمه L2 برای کاهش پیچیدگی مدل


6. رگرسیون Lasso

◽️رگرسیون با جریمه L1 ویژگی‌های بی‌اثر را حذف می‌کند


7. رگرسیون لگاریتمی

◽️مناسب داده‌های دارای رشد یا افت سریع


8. رگرسیون Quantile (صدکی)

◽️پیش‌بینی میانه یا صدک‌های خاص داده


9. رگرسیون Stepwise (گام‌به‌گام)

◽️افزودن یا حذف خودکار ویژگی‌ها برای ساده‌سازی مدل

#ML
3🔥2
@MachineLearning_ir - Interactive Linear Algebra.pdf
4.4 MB
کتابی مناسب برای یادگیری بصری جبرخطی

از : Dan Margalit و Joseph D. Rabinoff
3
algoroots
@MachineLearning_ir - Interactive Linear Algebra.pdf
📚پایه ای بسیار مهم برای فهم و توسعه ی مدل های یادگیری ماشین
#Ml
2
@MachineLearning_ir - ML with Python Cookbook.pdf
1.8 MB
کتاب یادگیری ماشین با پایتون

از : Chris Albon
4
algoroots
@MachineLearning_ir - ML with Python Cookbook.pdf
📚پر از مسائل متداول و عملی
دارای راهکار های سریع و کاربردی
#Ml
3
🤔رمزنگاری هش:

یک تکنیک که یک ورودی با اندازه دلخواه را به
یک خروجی با اندازه ی ثابت تبدیل میکند
و خروجی را به اصطلاح هش می‌نامند!

یک الگوریتم بسیار حساس به تغییر و مقاوم

کاربرد ها :
ذخیره ی امن پسورد
امضای دیجیتال
بلاک چین
2👎1