algoroots
105 subscribers
5 photos
2 videos
5 files
6 links
جایی برای تقویت ذهن الگوریتمی با
الگوریتم های کاربردی در حوزه های جذاب
Download Telegram
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
lecture_notes.pdf
989.7 KB
carnegie mellon جزوه ی مبانی رمز دانشگاه
🤔21
algoroots
lecture_notes.pdf
مناسب برای یادگیری الگوریتم های رمز

#cryptography
2
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score, classification_report

iris=load_iris()
X = iris.data
y = iris.target

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

model = KNeighborsClassifier(n_neighbors=3)
model.fit(X_train, y_train)

y_pred=model.predict(X_test)

accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy * 100:.2f}%")
print("\nClassification Report:")
print(classification_report(y_test, y_pred, target_names=iris.target_names))
2
Chip_Huyen_Designing_Machine_Learning_Systems_An_Iterative_Process.pdf
15.5 MB
کتابی برای پیاده سازی سیستم های ماشین لرنینگ به صورت واقعی و عملی
#Ml
3
🤔الگوریتم k-means

یک الگوریتم کلاسیک و مهم در یادگیریه بدون نظارت که در خوشه بندی استفاده میشود.

این الگوریتم مجموعه ای از نقاط داده را به K خوشه مجزا تقسیم می‌کند :
به صورتی که نقاط داخل هر خوشه بیشترین همسایگی را با هم داشته باشند و نقاط مختلف هر خوشه بیشترین تفاوت را با هم.


مسئله ریاضی پشت این الگوریتم کمینه کردن مجموع مربع فاصله داده ها از مرکز است.

#ML
👍41
import numpy as np

def initialize_centroids(X, k):
indices = np.random.choice(len(X), size=k, replace=False)
return X[indices]

def assign_clusters(X,centroids):
distances = np.linalg.norm(X[:, np.newaxis] -centroids, axis=2)
return np.argmin(distances, axis=1)

def update_centroids(X, labels, k):
return np.array([X[labels== i].mean(axis=0) for i in range(k)])

def has_converged(old_centroids, new_centroids, tolerance=1e-4):
shifts = np.linalg.norm(new_centroids - old_centroids, axis=1)
return np.all(shifts < tolerance)

def kmeans(X, k, max_iterations=100):
centroids=initialize_centroids(X, k)

for _ in range(max_iterations):
labels = assign_clusters(X, centroids)
new_centroids = update_centroids(X, labels, k)

if has_converged(centroids, new_centroids):
break

centroids=new_centroids

return centroids, labels
1
◻️ارزیابی Silhouette Score :

یکی از بهترین ارزیابی ها برای خوشه بندی

اندازه‌گیری میزان شباهت هر نقطه به خوشه اش نسبت به خوشه های دیگر

مقدار در بازه ی [1,1-]
نزدیک به 1 یعنی خوشه بندی عالی
نزدیک به صفر یعنی نقاط بین دو خوشه است
نزدیک به 1- یعنی اشتباه در خوشه بندی
#ML
👍21