کتابخانه‌ی استاندارد · عدد و مجموعه

تصادفی rand

عدد، متن و انتخاب تصادفی: تاس، رمز یک‌بارمصرف، شناسه‌ی یکتا و بهم ریختن فهرست.

واردسازی تصادفی
در این صفحه
  1. روال‌ها

بسته‌ی تصادفی برای بازی‌ها، شبیه‌سازی، نمونه‌داده و ساختن شناسه است. پیش از هر چیز یک بار بذر خودکار را صدا بزنید تا هر اجرای برنامه عددهای متفاوتی بگیرد. اگر می‌خواهید نتیجه هر بار یکی باشد، مثلاً در آزمون، به‌جایش بذر را با یک عدد ثابت صدا بزنید.

این بسته برای رمزنگاری ساخته نشده است. برای کلید، توکن ورود و گذرواژه، بسته‌ی رمزنگاری را به کار ببرید.

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

روال‌ها

بذر Seed

روال بذر(s: صحیح۶۴)
مولد را با یک عدد ثابت راه می‌اندازد. با بذر یکسان، دنباله‌ی عددها هم همیشه یکسان است.
rand-Seed.salam
واردسازی تصادفی

روال ریشه:
    تصادفی.بذر(۴۲)
    الف := تصادفی.عدد در بازه(۱، ۱۰۰)
    تصادفی.بذر(۴۲)
    ب := تصادفی.عدد در بازه(۱، ۱۰۰)
    سرچاپ الف == ب
    تصادفی.بذر خودکار()
    تاس := تصادفی.عدد۳۲بیتی در بازه(۱، ۶)
    سرچاپ تاس >= ۱ و تاس <= ۶
    ع := تصادفی.عدد تصادفی()
    ع۳۲ := تصادفی.عدد۳۲بیتی()
    سرچاپ تصادفی.عدد کمتر از ان(۱۰) < ۱۰، ع == ع، ع۳۲ == ع۳۲
    سرچاپ تصادفی.عدد با طول(۶) >= ۱۰۰۰۰۰
پایان
خروجیtrue true true true true true

بذر خودکار SeedAuto

روال بذر خودکار()
مولد را با زمان فعلی راه می‌اندازد تا هر اجرا عددهای متفاوتی بگیرد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: rand-Seed.salam

عدد تصادفی Int

روال عدد تصادفی(): صحیح۶۴
یک عدد صحیح ۶۴ بیتی تصادفی. برای عددی در بازه‌ی مشخص، عدد در بازه ساده‌تر است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: rand-Seed.salam

عدد۳۲بیتی Int32

روال عدد۳۲بیتی(): صحیح
یک عدد صحیح ۳۲ بیتی تصادفی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: rand-Seed.salam

عدد کمتر از ان IntN

روال عدد کمتر از ان(n: صحیح۶۴): صحیح۶۴
عددی تصادفی از صفر تا یکی کمتر از n.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: rand-Seed.salam

عدد در بازه IntRange

روال عدد در بازه(lo: صحیح۶۴، hi: صحیح۶۴): صحیح۶۴
عددی تصادفی از lo تا hi، هر دو سر شامل.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: rand-Seed.salam

عدد۳۲بیتی در بازه Int32Range

روال عدد۳۲بیتی در بازه(lo: صحیح، hi: صحیح): صحیح
مثل عدد در بازه، با خروجی ۳۲ بیتی؛ برای تاس: از ۱ تا ۶.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: rand-Seed.salam

عدد با طول IntWithLength

روال عدد با طول(digits: صحیح): صحیح۶۴
عددی تصادفی با دقیقاً digits رقم؛ برای کدهای تأیید پیامکی مناسب است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: rand-Seed.salam

اعشار تصادفی Float

روال اعشار تصادفی(): اعشار۶۴
عدد اعشاری تصادفی از صفر تا کمتر از یک.
rand-Float.salam
واردسازی تصادفی

روال ریشه:
    ا := تصادفی.اعشار تصادفی()
    سرچاپ ا >= ۰.۰ و ا < ۱.۰
    ب := تصادفی.اعشار در بازه(۱۰.۰، ۲۰.۰)
    سرچاپ ب >= ۱۰.۰ و ب < ۲۰.۰
    سرچاپ تصادفی.منطقی با احتمال(۱.۰)، تصادفی.منطقی با احتمال(۰.۰)
    م := تصادفی.منطقی تصادفی()
    سرچاپ م == درست یا م == نادرست
پایان
خروجیtrue true true false true

اعشار در بازه FloatRange

روال اعشار در بازه(lo: اعشار۶۴، hi: اعشار۶۴): اعشار۶۴
عدد اعشاری تصادفی از lo تا کمتر از hi.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: rand-Float.salam

منطقی تصادفی Bool

روال منطقی تصادفی(): منطقی
درست یا نادرست، هر کدام با احتمال نیم.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: rand-Float.salam

منطقی با احتمال BoolP

روال منطقی با احتمال(p: اعشار۶۴): منطقی
با احتمال p (بین صفر و یک) درست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: rand-Float.salam

بایت های تصادفی Bytes

روال بایت های تصادفی(n: صحیح): رشته
n بایت تصادفی.
rand-Text.salam
واردسازی تصادفی
واردسازی رشته

روال ریشه:
    سرچاپ تصادفی.حروف(۸).طول()، تصادفی.حروف بزرگ(۸).طول()، تصادفی.حروف ترکیبی(۸).طول()
    سرچاپ تصادفی.رقم(۶).طول()، تصادفی.حروف با عدد(۱۲).طول()، تصادفی.متن تصادفی(۱۰).طول()
    سرچاپ تصادفی.متن از(۵، "ab").طول()، رشته.شامل است("ab"، تصادفی.انتخاب نویسه("ab"))
    سرچاپ تصادفی.بایت های تصادفی(۴).طول()، تصادفی.بایت های شانزده(۴).طول()
    سرچاپ تصادفی.درهم().طول()، تصادفی.درهم۱۶۰().طول()، تصادفی.درهم۲۵۶().طول()
    ش := تصادفی.شناسه یکتا()
    سرچاپ ش.طول()، ش.زیررشته(۱۴، ۱)
پایان
خروجی8 8 8 6 12 10 5 true 4 8 32 40 64 36 4

متن از TextFrom

روال متن از(n: صحیح، charset: رشته): رشته
متنی به طول n از نویسه‌های charset می‌سازد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: rand-Text.salam

حروف Alpha

روال حروف(n: صحیح): رشته
متنی از حرف‌های کوچک انگلیسی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: rand-Text.salam

حروف بزرگ AlphaUpper

روال حروف بزرگ(n: صحیح): رشته
متنی از حرف‌های بزرگ انگلیسی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: rand-Text.salam

حروف ترکیبی AlphaMixed

روال حروف ترکیبی(n: صحیح): رشته
متنی از حرف‌های بزرگ و کوچک انگلیسی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: rand-Text.salam

رقم Digit

روال رقم(n: صحیح): رشته
متنی فقط از رقم؛ برای کد یک‌بارمصرف.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: rand-Text.salam

حروف با عدد Alnum

روال حروف با عدد(n: صحیح): رشته
متنی از حرف‌ها و رقم‌های انگلیسی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: rand-Text.salam

متن تصادفی Text

روال متن تصادفی(n: صحیح): رشته
متنی از حرف‌ها و رقم‌های انگلیسی و نشانه‌هایی مثل !@#$؛ برای ساختن گذرواژه‌ی آزمایشی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: rand-Text.salam

بایت های شانزده HexBytes

روال بایت های شانزده(n: صحیح): رشته
n بایت تصادفی به شکل متن شانزده‌شانزدهی (دو نویسه برای هر بایت).

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: rand-Text.salam

درهم Hash

روال درهم(): رشته
یک رشته‌ی تصادفی ۳۲ نویسه‌ای شانزده‌شانزدهی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: rand-Text.salam

درهم۱۶۰ Hash160

روال درهم۱۶۰(): رشته
یک رشته‌ی تصادفی ۴۰ نویسه‌ای شانزده‌شانزدهی (۱۶۰ بیت).

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: rand-Text.salam

درهم۲۵۶ Hash256

روال درهم۲۵۶(): رشته
یک رشته‌ی تصادفی ۶۴ نویسه‌ای شانزده‌شانزدهی (۲۵۶ بیت).

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: rand-Text.salam

شناسه یکتا UUID

روال شناسه یکتا(): رشته
یک شناسه‌ی یکتای نسخه‌ی ۴ مثل xxxxxxxx-xxxx-4xxx-... می‌سازد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: rand-Text.salam

انتخاب رشته ChoiceStr

روال انتخاب رشته(v: وکتور<رشته>): رشته
یک عضو تصادفی از وکتور رشته‌ها برمی‌گرداند.
rand-Choice.salam
واردسازی تصادفی

روال ریشه:
    ناپایا نام‌ها := وکتور {} برگردان وکتور<رشته>
    دیرکن نام‌ها.آزادکن()
    نام‌ها.بیفزا("علی")
    نام‌ها.بیفزا("سارا")
    نام‌ها.بیفزا("رضا")
    برنده := تصادفی.انتخاب رشته(نام‌ها)
    سرچاپ برنده == "علی" یا برنده == "سارا" یا برنده == "رضا"
    ناپایا عددها := وکتور {} برگردان وکتور<صحیح>
    دیرکن عددها.آزادکن()
    تکرار ۱ تا ۵ در ای:
        عددها.بیفزا(ای)
    پایان
    سرچاپ تصادفی.انتخاب عدد(عددها) <= ۵
    بهم := تصادفی.بهم ریختن عدد(عددها)
    ناپایا جمع := ۰
    هر ع در بهم:
        جمع += ع
    پایان
    سرچاپ بهم.طول()، جمع
    سرچاپ تصادفی.بهم ریختن رشته(نام‌ها).طول()
پایان
خروجیtrue true 5 15 3

انتخاب عدد ChoiceInt

روال انتخاب عدد(v: وکتور<صحیح>): صحیح
یک عضو تصادفی از وکتور عددها برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: rand-Choice.salam

انتخاب نویسه ChoiceChar

روال انتخاب نویسه(s: رشته): رشته
یک نویسه‌ی تصادفی از رشته برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: rand-Text.salam

بهم ریختن رشته ShuffleStr

روال بهم ریختن رشته(v: وکتور<رشته>): وکتور<رشته>
رونوشتی بهم‌ریخته از وکتور رشته‌ها برمی‌گرداند و خود وکتور را تغییر نمی‌دهد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: rand-Choice.salam

بهم ریختن عدد ShuffleInt

روال بهم ریختن عدد(v: وکتور<صحیح>): وکتور<صحیح>
رونوشتی بهم‌ریخته از وکتور عددها برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: rand-Choice.salam