Ngasilake decimals lan integer acak ing Python, kalebu acak (), randrange (), lan randint ()

Bisnis

nomer acak bisa kui nggunakake acak (), seragam (), randange (), lan randont () fungsi ing modul acak saka perpustakaan standar Python.

Modul acak klebu ing perpustakaan standar, supaya ora instalasi tambahan dibutuhake. Mesthi, sampeyan kudu ngimpor.

Informasi ing ngisor iki kasedhiya ing kene.

  • random.random()(Nomer titik ngambang antarane 0.0 lan 1.0)
  • random.uniform()(Sembarang sawetara angka floating point)
  • Nggawe nomer acak sing tindakake distribusi normal, distribusi Gaussian, etc.
  • random.randrange()(Integer saka sawetara lan langkah kasepakatan)
  • random.randint()(Integer ing sembarang kisaran)
  • Nggawe dhaptar kanthi nomer acak minangka unsur
    • Dhaptar nomer floating-titik acak
    • Dhaptar nomer acak integer
  • Initialize generator nomer acak (ndandani wiji nomer acak)

Deleng artikel ing ngisor iki babagan cara ngekstrak utawa ngurutake unsur dhaptar kanthi acak.

random.random()(Nomer titik ngambang antarane 0.0 lan 1.0)

Fungsi acak modul acak () ngasilake nomer floating-titik acak saka jinis ngambang sing antarane 0,0 lan 1,0.

import random

print(random.random())
# 0.4496839011176701

random.uniform()(Sembarang sawetara angka floating point)

uniform(a, b)Fungsi saka modul acak iki ngasilaken nomer acak floating-titik nomer jinis float ing samubarang kisaran ing ngisor iki

  • a <= n <= b
  • b <= n <= a
import random

print(random.uniform(100, 200))
# 175.26585048238275

Argumentasi loro bisa dadi luwih gedhe utawa luwih cilik; yen padha, padha bakal alamiah mung bali Nilai sing. Nilai bali tansah ngambang.

print(random.uniform(100, -100))
# -27.82338731501028

print(random.uniform(100, 100))
# 100.0

Argumentasi uga bisa ditemtokake minangka float.

print(random.uniform(1.234, 5.637))
# 2.606743596829249

Apa nilai b kalebu ing sawetara gumantung ing pambulatan ing ngisor iki, minangka nyathet.
a + (b-a) * random.random()

Nilai endpoint b ana ing jangkoan utawa ora gumantung saka pembulatan titik ngambang ing persamaan ing ngisor iki
a + (b-a) * random()
random.uniform() — Generate pseudo-random numbers — Python 3.10.2 Documentation

Nggawe nomer acak sing tindakake distribusi normal, distribusi Gaussian, etc.

Fungsi acak () lan seragam () ing ndhuwur ngasilake nomer acak sing disebarake seragam, nanging ana uga fungsi kanggo ngasilake angka ngambang sing nderek distribusi ing ngisor iki.

  • distribusi beta:random.betavariate()
  • distribusi eksponensial:random.expovariate()
  • distribusi gamma:random.gammavariate()
  • Distribusi Gaussian:random.gauss()
  • distribusi lognormal:random.lognormvariate()
  • distribusi normal:random.normalvariate()
  • distribusi Von Mises:random.vonmisesvariate()
  • Distribusi Pareto:random.paretovariate()
  • Distribusi Weibull:random.weibullvariate()

Parameter saben distribusi ditemtokake dening argumen. Deleng dokumentasi resmi kanggo rincian.

random.randrange()(Integer saka sawetara lan langkah kasepakatan)

randrange(start, stop, step)
Fungsi modul acak iki ngasilake unsur sing dipilih kanthi acak saka unsur ing ngisor iki.
range(start, stop, step)

Kaya kisaran (), argumen wiwitan lan langkah bisa diilangi. Yen diilangi, miwiti = 0 lan langkah = 1.

import random

print(list(range(10)))
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print(random.randrange(10))
# 5

Langkah argumen bisa disetel kanggo ngasilake integer acak genap utawa ganjil, utawa integer acak sing kaping telu.

Contone, yen wiwitan malah lan langkah = 2, mung ongko genap ing sawetara bisa dijupuk kanthi acak.

print(list(range(10, 20, 2)))
# [10, 12, 14, 16, 18]

print(random.randrange(10, 20, 2))
# 18

random.randint()(Integer ing sembarang kisaran)

randint(a, b)
Fungsi modul acak iki ngasilake integer acak ing ngisor iki.
a <= n <= b
randrange(a, b + 1)Setara karo iki; Elinga yen nilai b uga kalebu ing sawetara.

print(random.randint(50, 100))
# print(random.randrange(50, 101))
# 74

Nggawe dhaptar kanthi nomer acak minangka unsur

Ing bagean iki, kita bakal nerangake carane nggunakake modul acak saka perpustakaan standar kanggo generate dhaftar karo nomer acak minangka unsur.

Dhaptar nomer acak kanthi floating-point floats

Kanggo generate dhaftar kang unsur floating-titik nomer acak, gabungke acak () lan seragam () fungsi karo dhaftar pangerten notasi.

import random

print([random.random() for i in range(5)])
# [0.5518201298350598, 0.3476911314933616, 0.8463426180468342, 0.8949046353303931, 0.40822657702632625]

Ing conto ing ndhuwur, sawetara () digunakake, nanging dhaptar lan tuple uga bisa kanggo nomer unsur sing dikarepake. Kanggo rincian liyane babagan pangerten dhaptar, waca artikel ing ngisor iki.

Dhaptar integer int nomer acak

Nalika nggawe dhaptar sing unsur integer nomer acak, nggabungke randange ndhuwur () lan randint () karo dhaftar pangerten notasi bisa nyebabake duplikat nilai.

print([random.randint(0, 10) for i in range(5)])
# [8, 5, 7, 10, 7]

Yen sampeyan pengin nggawe urutan acak saka wilangan bulat tanpa duplikasi, extract unsur saka sawetara () karo sawetara kasepakatan nggunakake random.sample ().

print(random.sample(range(10), k=5))
# [6, 4, 3, 7, 5]

print(random.sample(range(100, 200, 10), k=5))
# [130, 190, 140, 150, 170]

Kanggo informasi luwih lengkap babagan random.sample (), waca artikel ing ngisor iki.

Initialize generator nomer acak (ndandani wiji nomer acak)

Kanthi menehi integer kasepakatan kanggo wiji fungsi modul acak (), wiji nomer acak bisa didandani lan generator nomer acak bisa initialized.

Sawise initialization karo winih padha, Nilai acak tansah kui ing cara sing padha.

random.seed(0)
print(random.random())
# 0.8444218515250481

print(random.random())
# 0.7579544029403025

random.seed(0)
print(random.random())
# 0.8444218515250481

print(random.random())
# 0.7579544029403025