Hướng dẫn random unique number python - con trăn số duy nhất ngẫu nhiên

Tôi biết làm thế nào để tạo một số ngẫu nhiên trong một phạm vi trong Python.

random.randint(numLow, numHigh)

Và tôi biết tôi có thể đặt nó vào một vòng lặp để tạo ra n số lượng của các số này

for x in range (0, n):
    listOfNumbers.append(random.randint(numLow, numHigh))

Tuy nhiên, tôi cần đảm bảo mỗi số trong danh sách đó là duy nhất. Khác với một tải các câu lệnh có điều kiện, có cách nào đơn giản để tạo n số số ngẫu nhiên duy nhất không?

Điều quan trọng là mỗi số trong danh sách khác với các số khác ..

Vì thế

[12, 5, 6, 1] = Tốt

Nhưng mà

[12, 5, 5, 1] ​​= xấu, vì số 5 xảy ra hai lần.

Hướng dẫn random unique number python - con trăn số duy nhất ngẫu nhiên

Hỏi ngày 3 tháng 4 năm 2014 lúc 15:29Apr 3, 2014 at 15:29Apr 3, 2014 at 15:29

Tiêu đề Chris HeadleandchrisChris HeadleandChris Headleand

5.72316 Huy hiệu vàng 50 Huy hiệu bạc66 Huy hiệu Đồng16 gold badges50 silver badges66 bronze badges16 gold badges50 silver badges66 bronze badges

1

Nếu bạn chỉ cần lấy mẫu mà không cần thay thế:

>>> import random
>>> random.sample(range(1, 100), 3)
[77, 52, 45]

Random.Sample có dân số và cỡ mẫu

for x in range (0, n):
    listOfNumbers.append(random.randint(numLow, numHigh))
0 và trả lại
for x in range (0, n):
    listOfNumbers.append(random.randint(numLow, numHigh))
0 Thành viên ngẫu nhiên của dân số.

Nếu bạn phải kiểm soát trường hợp

for x in range (0, n):
    listOfNumbers.append(random.randint(numLow, numHigh))
0 lớn hơn
for x in range (0, n):
    listOfNumbers.append(random.randint(numLow, numHigh))
3, bạn cần phải chuẩn bị để bắt
for x in range (0, n):
    listOfNumbers.append(random.randint(numLow, numHigh))
4:
>>> try:
...   random.sample(range(1, 2), 3)
... except ValueError:
...   print('Sample size exceeded population size.')
... 
Sample size exceeded population size

Đã trả lời ngày 3 tháng 4 năm 2014 lúc 15:34Apr 3, 2014 at 15:34Apr 3, 2014 at 15:34

5

Tạo ra phạm vi dữ liệu trước và sau đó xáo trộn nó như thế này

import random
data = list(range(numLow, numHigh))
random.shuffle(data)
print data

Bằng cách thực hiện theo cách này, bạn sẽ nhận được tất cả các số trong phạm vi cụ thể nhưng theo thứ tự ngẫu nhiên.

Nhưng bạn có thể sử dụng

for x in range (0, n):
    listOfNumbers.append(random.randint(numLow, numHigh))
5 để có được số lượng các yếu tố bạn cần, từ một loạt các số như thế này
for x in range (0, n):
    listOfNumbers.append(random.randint(numLow, numHigh))
1

Đã trả lời ngày 3 tháng 4 năm 2014 lúc 15:31Apr 3, 2014 at 15:31Apr 3, 2014 at 15:31

Thefourtheyethefourtheyethefourtheyethefourtheye

227K52 Huy hiệu vàng443 Huy hiệu bạc486 Huy hiệu Đồng52 gold badges443 silver badges486 bronze badges52 gold badges443 silver badges486 bronze badges

1

Bạn có thể thêm vào

for x in range (0, n):
    listOfNumbers.append(random.randint(numLow, numHigh))
6 cho đến khi bạn đạt được
for x in range (0, n):
    listOfNumbers.append(random.randint(numLow, numHigh))
7:
for x in range (0, n):
    listOfNumbers.append(random.randint(numLow, numHigh))
4

Hãy cẩn thận khi có một phạm vi nhỏ hơn sẽ phù hợp với

for x in range (0, n):
    listOfNumbers.append(random.randint(numLow, numHigh))
7. Nó sẽ lặp lại mãi mãi, không thể tìm thấy các số mới để chèn lên đến
for x in range (0, n):
    listOfNumbers.append(random.randint(numLow, numHigh))
7

Đã trả lời ngày 3 tháng 4 năm 2014 lúc 15:32Apr 3, 2014 at 15:32Apr 3, 2014 at 15:32

1

Bạn có thể sử dụng chức năng

for x in range (0, n):
    listOfNumbers.append(random.randint(numLow, numHigh))
5 từ thư viện tiêu chuẩn để chọn các yếu tố k từ dân số:
for x in range (0, n):
    listOfNumbers.append(random.randint(numLow, numHigh))
8

Trong trường hợp có một loạt các số khá lớn, bạn có thể sử dụng

>>> import random
>>> random.sample(range(1, 100), 3)
[77, 52, 45]
1 với một trình tạo ngẫu nhiên vô hạn:
>>> import random
>>> random.sample(range(1, 100), 3)
[77, 52, 45]
0

Sau khi cập nhật câu hỏi, bây giờ rõ ràng là bạn cần n số (duy nhất) khác biệt.

>>> import random
>>> random.sample(range(1, 100), 3)
[77, 52, 45]
1

Đã trả lời ngày 3 tháng 4 năm 2014 lúc 15:39Apr 3, 2014 at 15:39Apr 3, 2014 at 15:39

Maxbublismaxbublismaxbublismaxbublis

1.24310 Huy hiệu bạc21 Huy hiệu đồng10 silver badges21 bronze badges10 silver badges21 bronze badges

0

Làm thế nào để bạn tạo ra các số ngẫu nhiên duy nhất?

Trong một cột, sử dụng công thức = rand () để tạo một tập hợp các số ngẫu nhiên trong khoảng từ 0 đến 1.use =RAND() formula to generate a set of random numbers between 0 and 1.use =RAND() formula to generate a set of random numbers between 0 and 1.

Làm thế nào để bạn có được các giá trị độc đáo trong Python?

Sử dụng Numpy nhập khẩu của Python, các yếu tố duy nhất trong mảng cũng thu được.Trong bước đầu tiên, hãy chuyển đổi danh sách thành xconvert the list to x=numpy.array(list) and then use numpy.unique(x) function to get the unique values from the list.convert the list to x=numpy. array(list) and then use numpy. unique(x) function to get the unique values from the list.

Làm thế nào để Python tạo ra 5 số ngẫu nhiên?

Bằng cách sử dụng Random.randint (), chúng ta có thể thêm các số ngẫu nhiên vào danh sách.random.randint() we can add random numbers into a list.random. randint() we can add random numbers into a list.