تولید اعداد تصادفی در پایتون — به زبان ساده (+ دانلود فیلم آموزش گام به گام)

۱۱۴۳۶ بازدید
آخرین به‌روزرسانی: ۱۷ اردیبهشت ۱۴۰۲
زمان مطالعه: ۵۶ دقیقه
تولید اعداد تصادفی در پایتون — به زبان ساده (+ دانلود فیلم آموزش گام به گام)

تصادفی بودن، بخش مهمی از «پیکربندی» (Configuration) و «ارزیابی» (Evaluation) الگوریتم‌های «یادگیری ماشین» (Machine Learning) را تشکیل می‌دهد. از مقداردهی اولیه تصادفی وزن‌ها در «شبکه عصبی مصنوعی» (Artificial Neural Network) تا بخش‌بندی داده‌ها به صورت تصادفی به دو دسته «مجموعه تست» (Test Set) و «مجموعه آموزش» (Train Set) و همچنین، «برُ زدن تصادفی» (Random Shuffling) مجموعه داده تست در «گرادیان نزولی تصادفی»، همه و همه نیاز به تسلط بر مهارت تولید اعداد تصادفی و استفاده از تصادفی بودن دارند. در این مطلب، روش تولید اعداد تصادفی در پایتون مورد بررسی قرار خواهد گرفت. در ادامه، مباحث زیر بررسی خواهند شد:

محتوای این مطلب جهت یادگیری بهتر و سریع‌تر آن، در انتهای متن به صورت ویدیویی نیز ارائه شده است.
  • تصادفی بودن، با استفاده از «مولدهای اعداد شبه تصادفی» (Pseudorandom Number Generators) قابل اعمال در برنامه‌ها است.
  • روش تولید اعداد تصادفی و استفاده از تصادفی بودن با استفاده از کتابخانه‌های استاندارد «زبان برنامه‌نویسی پایتون» (Python Programming Language) شرح داده می‌شود.
  • روش تولید آرایه‌هایی از اعداد تصادفی با کتابخانه «نام‌پای» (NumPy) شرح داده می‌شود.

مفاهیم بیان شده، در سه بخش کلی مولدهای اعداد شبه تصادفی، اعداد تصادفی با پایتون و اعداد تصادفی با «نام‌پای» (NumPy) شرح داده می‌شوند.

مولدهای اعداد شبه تصادفی

منبع تصادفی بودنی که در برنامه‌ها و الگوریتم‌ها تزریق می‌شود، ترفند ریاضیاتی است که مولد اعداد تصادفی نامیده می‌شود. مولد اعداد تصادفی، سیستمی است که اعداد تصادفی را از یک منبع درست از تصادفی بودن تولید می‌کند. معمولا، یک ابزار اندازه‌گیری پدیده فیزیکی مانند «شمارشگر گایگر مولر» (Geiger-Müller Counter)، جایی است که نتایج به اعداد تصادفی مبدل می‌شوند.

در یادگیری ماشین، به تصادفی بودن نیازی نیست. بلکه، از اعداد «شبه تصادفی» (Pseudorandom) استفاده می‌شود. اعداد شبه تصادفی، نمونه‌ای از اعداد محسوب می‌شوند که بسیار شبیه به اعداد تصادفی هستند، اما با استفاده از یک فرایند قطعی تولید شده‌اند.

در بُر زدن داده‌ها و مقداردهی اولیه ضرایب با مقادیر تصادفی از  مولدهای اعداد شبه تصادفی استفاده می‌شود. این برنامه‌های کوچک، اغلب توابعی هستند که پس از فراخوانی شدن، یک عدد تصادفی را باز می‌گردانند. در صورت فراخوانی مجدد، این برنامه‌ها یک عدد تصادفی جدید را باز می‌گردانند. توابع پوششی (Wrapper Functions) نیز موجود هستند و به کاربر این امکان را می‌دهند که عدد تصادفی را به صورت «عدد صحیح» (Integer)، «ممیز شناور» (Floating Point)، با یک توزیع احتمالی خاص و یا در یک طیف خاص دریافت کند.

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

تولید اعداد تصادفی با پایتون

کتابخانه استاندارد پایتون، ماژولی با عنوان random فراهم می‌کند که دارای دسته‌ای از توابع برای تولید اعداد تصادفی است. پایتون از یک مولد اعداد تصادفی مستحکم و محبوب به نام Mersenne Twister بهره می‌برد که یک توالی از اعداد تقریبا تصادفی را تولید می‌کند. این مولد، پارامتری را برای آغاز توالی دریافت می‌کند که «دانه» (seed) نامیده می‌شود. تابع قطعی است، بدین معنا که دادن یک دانه مشابه، هر بار منجر به تولید توالی مشابهی از اعداد می‌شود. انتخاب دانه اهمیتی ندارد.

تابع ()seed به مولد اعداد تصادفی، دانه می‌دهد و یک عدد صحیح مانند ۱ یا ۷ را به عنوان آرگومان دریافت می‌کند. اگر تابع ()seed پیش از استفاده از تابع تصادفی بودن فراخوانی نشود، به طور پیش‌فرض، از زمان سیستم به میلی‌ثانیه از مبدا تاریخ موجود در بایوس (۱۹۷۰) برای تولید اعداد تصادفی استفاده می‌شود. مثال زیر، چگونگی دانه دادن به مولد عدد تصادفی را نشان می‌دهد که بر اثر آن، اعداد تصادفی تولید می‌شوند. همچنین، نشان می‌دهد که دانه دادن مجدد به مولدها منجر به تولید توالی مشابهی از اعداد تصادفی می‌شود.

1# seed the pseudorandom number generator
2from random import seed
3from random import random
4# seed random number generator
5seed(1)
6# generate some random numbers
7print(random(), random(), random())
8# reset the seed
9seed(1)
10# generate some random numbers
11print(random(), random(), random())

با اجرای مثال بالا، به مولد اعداد تصادفی دانه با مقدار ۱ داده می‌شود؛ مولد، ۳ عدد تصادفی تولید می‌کند، مجددا به مولد دانه داده می‌شود و همانطور که مشهود است، سه عدد تصادفی مشابه تولید می‌شوند.

10.13436424411240122 0.8474337369372327 0.763774618976614
20.13436424411240122 0.8474337369372327 0.763774618976614

تنظیم کردن دانه، برای کنترل تصادفی بودن و حصول اطمینان از اینکه کد هر بار از توالی مشابهی استفاده می‌کند، درست مانند مدل تولید، بسیار مفید خواهد بود. برای اجرای آزمایش‌هایی که در آن‌ها تصادفی بودن برای کنترل متغیرهای مداخله‌گر مورد استفاده قرار می‌گیرد، امکان دارد یک دانه متفاوت برای هر اجرای آزمایشی مورد استفاده قرار بگیرد.

مقادیر ممیز شناور تصادفی

مقادیر ممیز شناور تصادفی، با استفاده از تابع ()random قابل استفاده هستند. مقادیر در بازه بین صفر و یک و به ویژه در بازه (0,1] تولید می‌شوند. مقادیر از یک «توزیع یکنواخت» (Uniform Distribution) حاصل می‌شوند، بدین معنا که هر مقدار دارای شانس برابری برای تولید شدن دارد. مثال زیر، ۱۰ مقدار تصادفی ممیز شناور را تولید می‌کند.

1# generate random floating point values
2from random import seed
3from random import random
4# seed random number generator
5seed(1)
6# generate random numbers between 0-1
7for _ in range(10):
8	value = random()
9	print(value)

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

0.1343642441124012
0.8474337369372327
0.763774618976614
0.2550690257394217
0.49543508709194095
0.4494910647887381
0.651592972722763
0.7887233511355132
0.0938595867742349
0.02834747652200631

مقادیر ممیز شناور را می‌توان با ضرب کردن آن‌ها با اندازه دامنه تغییرات (range) و افزودن مقدار کمینه (min) به آن، تغییر مقیاس داد.

1scaled value = min + (value * (max - min))

در کد بالا، min و max، به ترتیب مقادیر کمینه و بیشینه از یک طیف دلخواه هستند، و value‌ مقداری است که توسط روند تولید اعداد تصادفی در فاصله ۰ تا ۱ تولید شده است.

اعداد صحیح تصادفی

مقادیر صحیح تصادفی را می‌توان با تابع ()randint تولید کرد. این تابع، دو آرگومان دریافت می‌کند؛ شروع و پایان طیف برای مقادیر صحیح تولید شده، دو آرگومان دریافتی هستند. اعداد صحیح تصادفی در طیف مقادیر شروع و پایان و با احتساب خود این مقادیر (بازه بسته [start, end]) تولید می‌شوند. مثال زیر، ۱۰ عدد تصادفی را بین ۰ و ۱۰ تولید می‌کند.

1# generate random integer values
2from random import seed
3from random import randint
4# seed random number generator
5seed(1)
6# generate some integers
7for _ in range(10):
8	value = randint(0, 10)
9	print(value)

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

12
29
31
44
51
67
77
87
910
106

تولید اعداد گاوسی تصادفی

مقادیر ممیز شناور تصادفی را می‌توان از یک توزیع گاوسی با استفاده از تابع ()gauss ایجاد کرد. این تابع، دو آرگومانی که متناظر با پارامترهای توزیع نرمال (گاوسی) یعنی میانگین و انحراف معیار هستند را دریافت می‌کند.. مثال زیر، ۱۰ عدد تصادفی از توزیع گاوسی را با میانگین ۰.۰ و انحراف معیار ۱.۰ تولید می‌کند. توجه به این نکته لازم است که این پارامترها محدودیتی روی مقادیر ایجاد نمی‌کنند و توزیع مقادیر بر اساس شکل زنگی (زنگوله‌ای)، توزیع کنترل می‌شود؛ از آنجایی که شکل توزیع نرمال، متقارن است، برای مقادیر مثبت و منفی (بزرگتر و کوچکتر از صفر) احتمال تولید عدد تصادفی یکسان است.

1# generate random Gaussian values
2from random import seed
3from random import gauss
4# seed random number generator
5seed(1)
6# generate some Gaussian values
7for _ in range(10):
8	value = gauss(0, 1)
9	print(value)

با اجرای قطعه کد مثال بالا، ۱۰ مقدار گاوسی تصادفی ایجاد می‌شود.

1.2881847531554629
1.449445608699771
0.06633580893826191
-0.7645436509716318
-1.0921732151041414
0.03133451683171687
-1.022103170010873
-1.4368294451025299
0.19931197648375384
0.13337460465860485

انتخاب تصادفی از یک لیست

اعداد تصادفی برای انتخاب تصادفی یک آیتم از لیست نیز قابل استفاده هستند. برای مثال، اگر یک لیست از حروف a, b, c, d در اختیار داشته باشیم و بخواهیم به شکل تصادفی یک کلمه ۱۰ حرفی (با جایگذاری) ایجاد کنیم از تابع ()choice استفاده خواهیم کرد.

انتخاب‌ها با «توزیع یکنواخت» (Uniform Likelihood) انجام می‌شوند. قطعه کدی که در زیر آمده، این کار را انجام داده است و حروف مربوط به یک کلمه ۱۰ حرفی را از لیست حروف داده شده، ایجاد کرده است.

1# choose a random element from a list
2from random import seed
3from random import choice
4# seed random number generator
5seed(1)
6# prepare a sequence
7sequence = ["a","b","c","d"]
8print(sequence)
9# make choices from the sequence
10for _ in range(10):
11	selection = choice(sequence)
12	print(selection)

با اجرای مثال بالا، ابتدا یک لیست از مقادیر صحیح چاپ می‌شود، سپس، پنج مقدار تصادفی از میان آیتم‌های این لیست انتخاب و چاپ می‌شوند. البته از آنجایی مقدار (1)seed داده شده، با تکرار برنامه همین حروف ایجاد خواهد شد.

1['a', 'b', 'c', 'd']
2b
3a
4c
5a
6d
7d
8d
9d
10b
11a

زیرنمونه تصادفی از یک لیست

کاربر ممکن است تمایل به تکرار فرایند انتخاب مقادیر تصادفی از لیست داشته باشد تا یک زیرمجموعه انتخاب شده به صورت تصادفی بسازد. مهم‌تر آنکه، هنگامی که یک عنصر از لیست انتخاب و به زیر مجموعه اضافه شد، مجددا نباید اضافه شود. به این کار، انتخاب بدون جایگذاری گفته می‌شود، زیرا هنگامی که یک عنصر از لیست برای زیر مجموعه انتخاب شد، مجددا به لیست اصلی اضافه نمی‌شود (برای انتخاب مجدد موجود نیست). این رفتار، توسط تابع ()sample ارائه می‌شود که طی آن، لیست و اندازه زیرمجموعه به select به عنوان آرگومان داده می‌شود. توجه به این نکته لازم است که آیتم‌ها از لیست اصلی حذف نشده‌اند، بلکه، تنها در یک کپی از لیست انتخاب شده‌اند. مثال زیر چگونگی انتخاب یک زیر مجموعه حاوی سه عنصر را از لیستی حاوی چهار حرف اولی لاتین، نشان می‌دهد.

1# select a random sample without replacement
2from random import seed
3from random import sample
4# seed random number generator
5seed(11)
6# prepare a sequence
7sequence = ["a","b","c","d"]
8print(sequence)
9# select a subset without replacement
10subset = sample(sequence, 3)
11print(subset)

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

1['a', 'b', 'c', 'd']
2['d', 'c', 'b']

بُر زدن تصادفی یک لیست

از تصادفی بودن می‌توان برای بُر زدن تصادفی یک لیست از عناصر مانند بُر زدن ورق‌های بازی استفاده کرد. از تابع ()shuffle می‌توان برای انجام این کار، استفاده کرد. shuffle داده‌ها را در جای خودشان بُر می‌زند، بدین معنا که لیست به عنوان یک آرگومان برای تابع ()shuffle ارائه، بر زده و باز گردانده می‌شود. در حقیقت این تابع لیست بر زده شده را به جای کپی در یک لیست جدید، به شکل درجا ایجاد می‌کند. مثال زیر چگونگی بر زدن تصادفی یک لیست از اعداد صحیح را نشان می‌دهد. همانطور که می‌بینید تابع (shuffle(sequence به متغیر دیگری نسبت داده نشده و حاصل اجرای این تابع (یعنی بُر زدن) در همان لیست sequence دیده خواهد شد.

1# randomly shuffle a sequence
2from random import seed
3from random import shuffle
4# seed random number generator
5seed(1)
6# prepare a sequence
7sequence = [i for i in range(20)]
8print(sequence)
9# randomly shuffle the sequence
10shuffle(sequence)
11print(sequence)

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

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
[11, 5, 17, 19, 9, 0, 16, 1, 15, 6, 10, 13, 14, 12, 7, 3, 8, 2, 18, 4]

تولید اعداد تصادفی با نام‌پای

در یادگیری ماشین، از کتابخانه‌هایی مانند «سایکیت‌لِرن» (Scikit-Learn) و «کرس» (Keras) استفاده می‌شود. این کتابخانه‌ها مبتنی بر «نام‌پای» (NumPy) هستند و در واقع، از کتابخانه نام‌پای در پس خود استفاده می‌کنند. NumPy کتابخانه‌ای است که قادر به انجام محاسبات بسیار کارآمد روی بردارها و ماتریس‌ها است.

نام‌پای، پیاده‌سازی اختصاصی از مولد اعداد تصادفی را بوسیله توابع پوششی دارد. همچنین، این کتابخانه مولد اعداد شبه‌تصادفی Mersenne Twister را پیاده‌سازی می‌کند. در ادامه، مثال‌هایی پیرامون تولید اعداد تصادفی و استفاده از تصادفی بودن با آرایه‌های NumPy ارائه می‌شود.

سید دادن به مولد اعداد تصادفی

مولد اعداد تصادفی NumPy از کتابخانه استاندارد پایتون متفاوت است. مهم‌تر آنکه، دانه دادن به مولد اعداد شبه‌تصادفی پایتون، مولد اعداد تصادفی NumPy را تحت تاثیر قرار نمی‌دهد. این دو باید به طور جداگانه دانه داده و استفاده شوند. تابع ()seed را می‌توان برای دانه دادن به مولد اعداد شبه تصادفی NumPy استفاده کرد که یک مقدار صحیح را به عنوان دانه دریافت می‌کند. مثال زیر نشان می‌دهد که چگونه به مولد دانه داده می‌شود و چطور، دانه دادن مجدد مولد منجر به توالی مشابهی از اعداد تصادفی تولید شده می‌شود.

1# seed the pseudorandom number generator
2from numpy.random import seed
3from numpy.random import rand
4# seed random number generator
5seed(1)
6# generate some random numbers
7print(rand(3))
8# reset the seed
9seed(1)
10# generate some random numbers
11print(rand(3))

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

[4.17022005e-01 7.20324493e-01 1.14374817e-04]
[4.17022005e-01 7.20324493e-01 1.14374817e-04]

آرایه‌ای از اعداد ممیز شناور تصادفی

یک آرایه از مقادیر ممیز شناور تصادفی را می‌توان با استفاده از تابع نام‌پای ()rand تولید کرد. اگر هیچ آرگومانی فراهم نشود، یک مقدار تصادفی مجرد ساخته می‌شود، در غیر این صورت، اندازه آرایه را می‌توان تعیین کرد. مثال زیر، یک آرایه از ۱۰ عدد تصادفی ممیز شناور با توزیع یکنواخت می‌سازد.

1# generate random floating point values
2from numpy.random import seed
3from numpy.random import rand
4# seed random number generator
5seed(1)
6# generate random numbers between 0-1
7values = rand(10)
8print(values)

با اجرای قطعه کد بالا، آرایه نام‌پای از اعداد تصادفی ممیز شناور تولید و چاپ می‌شود.

[4.17022005e-01 7.20324493e-01 1.14374817e-04 3.02332573e-01
1.46755891e-01 9.23385948e-02 1.86260211e-01 3.45560727e-01
3.96767474e-01 5.38816734e-01]

آرایه‌ای از مقادیر صحیح تصادفی

یک آرایه از مقادیر تصادفی صحیح را می‌توان با استفاده از تابع پایتون ()randint تولید کرد. این تابع، سه آرگومان کمترین مقدار بازه، بیشترین مقدار بازه و تعداد اعداد صحیح یا اندازه آرایه اعداد صحیح را دریافت می‌کند. اعداد صحیح از یک توزیع یکنواخت از کمترین مقدار تا بیشترین مقدار بازه پیروی می‌کنند (بازه به صورت (lower, upper] که شامل مقدار upper نیست). در مثال زیر، چگونگی ساختن یک آرایه از اعداد صحیح تصادفی نشان داده شده است.

1# generate random integer values
2from numpy.random import seed
3from numpy.random import randint
4# seed random number generator
5seed(1)
6# generate some integers
7values = randint(0, 10, 20)
8print(values)

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

 [5 8 9 5 0 0 1 7 6 9 2 4 5 2 4 2 4 7 7 9]

آرایه‌ای از مقادیر تصادفی گاوسی

یک آرایه از مقادیر گاوسی تصادفی را می‌توان با استفاده از تابع ()randn نام‌پای ساخت. این تابع یک آرگومان یکتا را به منظور تعیین اندازه آرایه حاصل شده دریافت می‌کند. مقادیر گاوسی از توزیع استاندارد گاوسی گرفته شده‌اند؛ این توزیع دارای میانگین ۰.۰ و انحراف معیار ۱.۰ است. قطعه کد زیر، نشان می‌دهد که چطور می‌توان یک آرایه از اعداد تصادفی گاوسی را تولید کرد.

1# generate random Gaussian values
2from numpy.random import seed
3from numpy.random import randn
4# seed random number generator
5seed(1)
6# generate some Gaussian values
7values = randn(10)
8print(values)

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

[ 1.62434536 -0.61175641 -0.52817175 -1.07296862 0.86540763 -2.3015387
1.74481176 -0.7612069 0.3190391 -0.24937038]

مقادیر حاصل از توزیع استاندارد گاوسی را می‌توان با ضرب کردن در انحراف معیار و اضافه کردن میانگین به یک توزیع گاوسی با میانگین و انحراف معیار دلخواه، تغییر مقیاس داد.

1scaled value = mean + value * stdev

در قطعه کد بالا، mean  و stdev، میانگین و انحراف معیار برای یک توزیع گاوسی دلخواه هستند و value مقدار حاصل از تولید عدد تصادفی با توزیع استاندارد گاوسی است. محاسبه صورت گرفته باعث ایجاد یک عدد تصادفی از توزیع گاوسی با میانگین mean و انحراف استاندارد stdev خواهد شد.

بُر زدن آرایه نام‌پای

یک آرایه نام‌پای را می‌توان به صورت تصادفی در جای خود (بدون تهیه یک کپی از لیست) با استفاده از تابع ()shuffle نام‌پای بُر زد. مثال زیر نشان می‌دهد که چگونه می‌توان یک آرایه نام‌پای را بُر زد.

1# randomly shuffle a sequence
2from numpy.random import seed
3from numpy.random import shuffle
4# seed random number generator
5seed(1)
6# prepare a sequence
7sequence = [i for i in range(20)]
8print(sequence)
9# randomly shuffle the sequence
10shuffle(sequence)
11print(sequence)

با اجرای قطعه کد بالا، ابتدا لیستی حاوی ۲۰ عدد صحیح ساخته می‌شود و سپس، همان آرایه بُر زده و چاپ می‌شود.

1[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
2[3, 16, 6, 10, 2, 14, 4, 17, 7, 1, 13, 0, 19, 18, 9, 15, 8, 12, 11, 5]

جمع‌بندی

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

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

اگر مطلب بالا برای شما مفید بوده، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

^^

فیلم‌ های آموزش تولید اعداد تصادفی در پایتون — به زبان ساده (+ دانلود فیلم آموزش گام به گام)

فیلم آموزشی تولید اعداد تصادفی در پایتون - بخش اول

دانلود ویدیو

فیلم آموزشی تولید اعداد تصادفی در پایتون - بخش دوم

دانلود ویدیو
بر اساس رای ۲۶ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
machinelearningmastery
۳ دیدگاه برای «تولید اعداد تصادفی در پایتون — به زبان ساده (+ دانلود فیلم آموزش گام به گام)»

باسلام
چگونه اعدادی که به صورت رندوم انتخاب شده رو با فونت فارسی نشون بده؟؟

چطور میشه کاری کنیم که اضافه پرینت نگیره؟
یعنی دوبار یک عدد یا حرف رو پرینت نگیره؟

دید روشنتری نسبت به ایجاد تصادفی پیدا کردم سپاسگزارم

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *