TGViewer
Infinite Loop Of Math² Infinite Loop Of Math² @mathloopinfinite · 145 subscribers
Post #75 160
پارت۲
(پارت۱)
بریم ببینیم زبان‌های برنامه نویسی مختلف برای حل مشکل سوگیری باقیمانده چیکار کردن. در واقع همه‌شون از همون ریاضیات استفاده می‌کنن، فقط به شکل و قالب خودشون🥸 اینجا مثال ما، تولید یک رمز ۵ کرکتری از حروف و اعداده.
import random
import string

def generate_random_string(length=5):
# بانک حروف (شامل حروف بزرگ، کوچک و اعداد)
chars = string.ascii_letters + string.digits

result = ''.join(random.choices(chars, k=length))
return result

print(generate_random_string())

👆اینجا در واقع تابع random.choices داره همون کار طرد کردن و ایجاد منطقه امن رو انجام میده.

import java.util.Random;

public class Main {
public static void main(String[] args) {
String chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
Random random = new Random();
StringBuilder result = new StringBuilder();

for (int i = 0; i < 5; i++) {
// این تابع عدد 62 را می‌گیره و یک عدد عادلانه بین 0 تا 61 می‌ده
int randomIndex = random.nextInt(62);
result.append(chars.charAt(randomIndex));
}

System.out.println(result.toString());
}
}

👆برای جاوا هم تابع nextInt وظیفه طرد کردن و چک کردن محدوده امن رو داره
// بانک کرکتر‌ها
    const char chars[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    //موتور تولید اعداد رندوم مثلاً اعداد خیلی بزرگ
    thread_local mt19937 gen(random_device{}());
//توزیع اعداد تو بازه مورد نظر
    uniform_int_distribution<int> dist(0, 61);
//دادن مقدار اولیه 0 به هر آرایه رشته ۵ حرفی
    string result(5, '0');
//جایگذاری با کرکتر‌های توی بانک
    for (char &c : result)
    {
        c = chars[dist(gen)];
    }
    return result;

برای cpp عملاً توزیع رو داریم انجام می‌دیم. ما ۶۲ تا کرکتر داریم، که چون شماره درایه‌های آرایه بانک حروف، از ۰ شروع میشه، پس میشه از 0 تا 61. موتور تولید اعداد رندوم( باید حتما لایبرری random رو اضافه کرده باشید) اعداد بزرگی تولید می‌کنه که تو این بازه نیستن، پس باز هم با همون روش میاد و زوری اعداد رو میندازه تو این بازه، ولی حواسش هست که از سوگیری جلوگیری کنه و این دقیقا وظیفه این قسمته:
uniform_int_distribution<int> dist(0, 61);

به این ترتیب اعداد بدون سوگیری میفتن تو این بازه، و در ادامه هر عدد رندومی که انتخاب بشه از این توزیع، در اصل نشون دهنده یه درایه از آرایه بانک حروف و اعداده، که اون کرکتر با توجه به شماره‌ش انتخاب، و جایگذاری میشه در رشته نهایی🥸
🔎خلاصه کار: همه‌شون از یه قانون ساده ریاضی پیروی می‌کنن
#comp_sci
#Algorithm
#code
#math
@mathloopinfinite
  • ❤ 8
More from @mathloopinfinite
  1. Oct 4, 2026🧠 جهشی جدید در ریاضیات با کمک مدل Muse Spark؛ پنج مسئله باز، پنج پاسخ جدید دوروز پیش شرکت…
  2. Oct 2, 2026مقایسه‌ای کوتاه بین HolyC و Cpp❗️ شاید کنجکاو شده باشید که بدونید تری دیویس در زبان ساختگی…
  3. Oct 1, 2026Post #125
  4. Sep 29, 2026می‌خوای لینوکس شروع کنی از صفر؟🐧 یه سایت خیلی بامزه هست به اسم Labex که می‌تونید پله به پ…
  5. Sep 25, 2026این مکالمه بین «هاول» و «سوفی» صفر تا صد با مدل جدید Gemini 3.8 Flash TTS گوگل رندر شده. ​…
  6. Sep 25, 2026Post #122
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →