Pertanyaan Hasilkan bilangan bulat acak antara 0 dan 9


Bagaimana saya bisa menghasilkan bilangan bulat acak antara 0 dan 9 (inklusif) dengan Python?

yaitu 0, 1, 2, 3, 4, 5, 6, 7, 8, 9


885
2017-10-22 12:48


asal


Jawaban:


Mencoba:

from random import randint
print(randint(0, 9))

Info lebih lanjut: https://docs.python.org/3/library/random.html#random.randint


1433
2017-10-22 12:51



import random
print(random.randint(0,9))

random.randint(a, b)

Kembalikan bilangan bulat acak N sehingga <= N <= b.

Documents: https://docs.python.org/3.1/library/random.html#random.randint


283
2018-05-04 17:13



Coba ini:

from random import randrange, uniform

# randrange gives you an integral value
irand = randrange(0, 10)

# uniform gives you a floating-point value
frand = uniform(0, 10)

87
2017-10-22 12:49



from random import randint

x = [randint(0, 9) for p in range(0, 10)]

Ini menghasilkan 10 pseudorandom integer dalam kisaran 0 hingga 9 inklusif.


51
2017-11-26 17:39



Itu secrets modul baru di Python 3.6. Ini lebih baik dari pada random modul untuk kriptografi atau penggunaan keamanan.

Untuk mencetak secara acak integer dalam kisaran inklusif 0-9:

from secrets import randbelow
print(randbelow(10))

Untuk detailnya, lihat PEP 506.


33
2017-12-06 10:29



Coba ini random.shuffle

>>> import random
>>> nums = [x for x in range(10)]
>>> random.shuffle(nums)
>>> nums
[6, 3, 5, 4, 0, 1, 2, 9, 8, 7]

18
2017-10-29 09:13



Pilih ukuran array (dalam contoh ini, saya telah memilih ukuran menjadi 20). Dan kemudian, gunakan yang berikut:

import numpy as np   
np.random.randint(10, size=(1, 20))

Anda dapat mengharapkan untuk melihat output dari formulir berikut (bilangan bulat acak yang berbeda akan dikembalikan setiap kali Anda menjalankannya; maka Anda dapat mengharapkan bilangan bulat dalam larik output berbeda dari contoh yang diberikan di bawah ini).

array([[1, 6, 1, 2, 8, 6, 3, 3, 2, 5, 6, 5, 0, 9, 5, 6, 4, 5, 9, 3]])

12
2018-02-02 06:35



Dalam kasus nomor terus menerus randint atau randrange mungkin adalah pilihan terbaik tetapi jika Anda memiliki beberapa nilai berbeda dalam suatu urutan (yaitu a list) Anda juga bisa menggunakan choice:

>>> import random
>>> values = list(range(10))
>>> random.choice(values)
5

choice juga berfungsi untuk satu item dari sampel tidak-kontinyu:

>>> values = [1, 2, 3, 5, 7, 10]
>>> random.choice(values)
7

Jika Anda membutuhkannya "cryptographically strong" ada juga a secrets.choice di python 3.6 dan yang lebih baru:

>>> import secrets
>>> values = list(range(10))
>>> secrets.choice(values)
2

11
2018-06-03 01:45



jika Anda ingin menggunakan numpy maka gunakan yang berikut:

import numpy as np
print(np.random.randint(0,10))

8
2018-01-12 03:12



Pertanyaan aslinya mengimplikasikan menghasilkan banyak bilangan bulat acak.

Bagaimana saya bisa menghasilkan bilangan bulat antara 0 dan 9 (inklusif) dengan Python?

Namun banyak tanggapan hanya menunjukkan cara mendapatkannya satu nomor acak, mis. random.randint dan random.choice.

Beberapa Bilangan Acak Acak

Untuk kejelasan, Anda masih dapat menghasilkan beberapa angka acak menggunakan teknik tersebut hanya dengan iterasi N waktu:

import random


N = 5

[random.randint(0, 9) for _ in range(N)]
# [9, 7, 0, 7, 3]

[random.choice(range(10)) for _ in range(N)]
# [8, 3, 6, 8, 7]

Contoh Bilangan Acak Acak

Beberapa posting mendemonstrasikan cara menghasilkan secara asli banyak bilangan bulat acak.1  Berikut ini beberapa opsi yang menjawab pertanyaan tersirat:

random.sample kembali k pilihan unik dari suatu populasi (tanpa penggantian):2

random.sample(range(10), k=N)
# [4, 5, 1, 2, 3]

Dalam Python 3.6, random.choices kembali k pilihan dari suatu populasi (dengan penggantian):

random.choices(range(10), k=N)
# [3, 2, 0, 8, 2]

Lihat juga posting terkait ini menggunakan numpy.random.choice.

1Yakni @ John Lawrence Aspden, @S T Mohammed, @SiddTheKid, @ user14372, @zangw, et al.

2@prashanth menyebutkan modul ini menampilkan satu bilangan bulat.


6
2017-09-22 04:29



>>> import random
>>> random.randrange(10)
3
>>> random.randrange(10)
1

Untuk mendapatkan daftar sepuluh sampel:

>>> [random.randrange(10) for x in range(10)]
[9, 0, 4, 0, 5, 7, 4, 3, 6, 8]

5
2017-08-10 15:48