Random.sample trong python

Sự việc ngẫu nhiên luôn xảy ra xung quanh chúng ta. Khi bạn tung ra một đồng xu hoặc một con thú cưng, bạn không biết giờ có thể chắc chắn về kết quả cuối cùng. Bất chấp tính chất này có nhiều ứng dụng như xác định người chiến thắng cuộc đấu tranh khi rút thăm may mắn hoặc tạo ra các trường hợp kiểm tra cho một bài kiểm tra với các giá trị ngẫu nhiên được tạo ra dựa trên một thuật toán

Biết được sự hữu ích này, Python đã cung cấp cho chúng ta mô-đun ngẫu nhiên. Bạn có thể sử dụng nó trong các trò chơi để sinh ra đối thủ ngẫu nhiên hoặc để trộn các phần tử trong danh sách

Random Activity Như thế nào?

Gần giống như tất cả các hàm trong mô-đun này phụ thuộc vào hàm

import random

random.randrange[100]
# returns 65

random.randrange[100]
# returns 98

random.randrange[0, 100, 3]
# returns 33

random.randrange[0, 100, 3]
# returns 75

random.randint[1,6]
# returns 4

random.randint[1,6]
# returns 6
2 cơ bản, nó sẽ tạo ra một số float ngẫu nhiên lớn hơn hoặc bằng không và nhỏ hơn một. Python sử dụng Mersenne Twister để tạo số float. Nó tạo ra số float chính xác 53-bit với 2**19937-1 dấu chấm động. Nó thực sự là trình tạo số ngẫu nhiên cho mục đích thông thường được sử dụng rộng rãi nhất

Đôi khi, bạn muốn tạo ngẫu nhiên các số ngẫu nhiên để tạo ra các chuỗi con số mà nó tạo ra lần đầu tiên. Điều này có thể đạt được bằng cách cung cấp cùng hai lần giá trị hạt giống vào trình tạo ngẫu nhiên số bằng hàm

import random

random.randrange[100]
# returns 65

random.randrange[100]
# returns 98

random.randrange[0, 100, 3]
# returns 33

random.randrange[0, 100, 3]
# returns 75

random.randint[1,6]
# returns 4

random.randint[1,6]
# returns 6
3. Nếu tham số bị bỏ qua, quá trình tạo số ngẫu nhiên sẽ sử dụng thời gian hiện tại của hệ thống để tạo ra các số. Dưới đây là một ví dụ

import random

random.seed[100]

random.random[] 
# returns 0.1456692551041303

random.random[]
# returns 0.45492700451402135

Hãy nhớ rằng, không giống như tung một đồng xu, mô-đun này tạo ra các số giả ngẫu nhiên hoàn toàn xác định, vì vậy nó không thích hợp cho các mục đích mã hóa

Create a natural integer

Mô-đun này có hai hàm khác nhau để tạo ra các số nguyên ngẫu nhiên. Bạn có thể sử dụng

import random

random.randrange[100]
# returns 65

random.randrange[100]
# returns 98

random.randrange[0, 100, 3]
# returns 33

random.randrange[0, 100, 3]
# returns 75

random.randint[1,6]
# returns 4

random.randint[1,6]
# returns 6
4 để tạo ra một số nguyên ngẫu nhiên nhỏ hơn
import random

random.randrange[100]
# returns 65

random.randrange[100]
# returns 98

random.randrange[0, 100, 3]
# returns 33

random.randrange[0, 100, 3]
# returns 75

random.randint[1,6]
# returns 4

random.randint[1,6]
# returns 6
5

Tương tự như vậy, bạn có thể sử dụng

import random

random.randrange[100]
# returns 65

random.randrange[100]
# returns 98

random.randrange[0, 100, 3]
# returns 33

random.randrange[0, 100, 3]
# returns 75

random.randint[1,6]
# returns 4

random.randint[1,6]
# returns 6
6 để tạo một số ngẫu nhiên từ
import random

random.randrange[100]
# returns 65

random.randrange[100]
# returns 98

random.randrange[0, 100, 3]
# returns 33

random.randrange[0, 100, 3]
# returns 75

random.randint[1,6]
# returns 4

random.randint[1,6]
# returns 6
0. Ví dụ, sử dụng
import random

random.randrange[100]
# returns 65

random.randrange[100]
# returns 98

random.randrange[0, 100, 3]
# returns 33

random.randrange[0, 100, 3]
# returns 75

random.randint[1,6]
# returns 4

random.randint[1,6]
# returns 6
1 sẽ chỉ trả về những con số trong khoảng từ 0 đến 100 mà đồng thời chia hết cho 3

Nếu bạn biết cả giới hạn dưới và giới hạn trên, thì bạn có thể sử dụng một hàm đơn giản và trực quan hơn được gọi là

import random

random.randrange[100]
# returns 65

random.randrange[100]
# returns 98

random.randrange[0, 100, 3]
# returns 33

random.randrange[0, 100, 3]
# returns 75

random.randint[1,6]
# returns 4

random.randint[1,6]
# returns 6
2. Nó chỉ đơn giản là một hàm thay thế cho
import random

random.randrange[100]
# returns 65

random.randrange[100]
# returns 98

random.randrange[0, 100, 3]
# returns 33

random.randrange[0, 100, 3]
# returns 75

random.randint[1,6]
# returns 4

random.randint[1,6]
# returns 6
3

import random

random.randrange[100]
# returns 65

random.randrange[100]
# returns 98

random.randrange[0, 100, 3]
# returns 33

random.randrange[0, 100, 3]
# returns 75

random.randint[1,6]
# returns 4

random.randint[1,6]
# returns 6

Hàm cho dãy số

To select an Random section from a dãy số không trống, bạn có thể sử dụng hàm

import random

random.randrange[100]
# returns 65

random.randrange[100]
# returns 98

random.randrange[0, 100, 3]
# returns 33

random.randrange[0, 100, 3]
# returns 75

random.randint[1,6]
# returns 4

random.randint[1,6]
# returns 6
4. With
import random

random.randrange[100]
# returns 65

random.randrange[100]
# returns 98

random.randrange[0, 100, 3]
# returns 33

random.randrange[0, 100, 3]
# returns 75

random.randint[1,6]
# returns 4

random.randint[1,6]
# returns 6
5, you are giới hạn lựa chọn trong các con số từ một khoảng nhất định. Hàm
import random

random.randrange[100]
# returns 65

random.randrange[100]
# returns 98

random.randrange[0, 100, 3]
# returns 33

random.randrange[0, 100, 3]
# returns 75

random.randint[1,6]
# returns 4

random.randint[1,6]
# returns 6
4 cho phép bạn chọn một số từ bất kỳ dãy số nào bạn muốn

Một lợi thế khác của hàm này là nó không giới hạn chỉ ở các con số. Nó có thể chọn bất kỳ loại phần tử ngẫu nhiên nào từ một dãy. Chẳng hạn như, tên của người chiến thắng trong cuộc thi Rút thăm may rủi giữa 5 người khác nhau, được cung cấp dưới dạng chuỗi, có thể được xác định bằng hàm này một cách dễ dàng

Nếu bạn muốn trộn một dãy thay vì chọn một phần tử ngẫu nhiên từ nó, bạn có thể sử dụng hàm

import random

random.randrange[100]
# returns 65

random.randrange[100]
# returns 98

random.randrange[0, 100, 3]
# returns 33

random.randrange[0, 100, 3]
# returns 75

random.randint[1,6]
# returns 4

random.randint[1,6]
# returns 6
7. Thao tác này sẽ dẫn đến một dãy số thích hợp. Đối với một dãy chỉ có 10[n] phần tử, có thể có tổng cộng 3628800[n]. ] chỉnh hợp khác nhau. Với một dãy lớn hơn, số vị trí thay đổi có thể sẽ cao hơn— điều chỉnh hàm này với ý rằng hàm này không thể bao giờ tạo ra tất cả các vị trí thay đổi của một dãy lớn

Giả sử bạn phải chọn 50 sinh viên từ 100 nhóm sinh viên để đi du lịch

Tại thời điểm này, bạn có thể tạm thời sử dụng hàm

import random

random.randrange[100]
# returns 65

random.randrange[100]
# returns 98

random.randrange[0, 100, 3]
# returns 33

random.randrange[0, 100, 3]
# returns 75

random.randint[1,6]
# returns 4

random.randint[1,6]
# returns 6
4. Vấn đề là bạn sẽ phải gọi nó là khoảng 50 lần trong trường hợp nhất tốt nhất, nơi nó không chọn hai lần cùng một sinh viên

Một giải pháp tốt hơn là sử dụng hàm 

import random

random.randrange[100]
# returns 65

random.randrange[100]
# returns 98

random.randrange[0, 100, 3]
# returns 33

random.randrange[0, 100, 3]
# returns 75

random.randint[1,6]
# returns 4

random.randint[1,6]
# returns 6
9. Nó sẽ trả về một danh sách các phần duy nhất k từ dãy đã cho. Đầu dòng ban đầu không thay đổi. Các phần tử trong danh sách kết quả sẽ theo thứ tự lựa chọn. Nếu k lớn hơn số lượng các phần tử trong dãy, một giá trị ValueError sẽ được sinh ra

import random

random.randrange[100]
# returns 65

random.randrange[100]
# returns 98

random.randrange[0, 100, 3]
# returns 33

random.randrange[0, 100, 3]
# returns 75

random.randint[1,6]
# returns 4

random.randint[1,6]
# returns 6
2

Như bạn có thể thấy,

import random

random.randrange[100]
# returns 65

random.randrange[100]
# returns 98

random.randrange[0, 100, 3]
# returns 33

random.randrange[0, 100, 3]
# returns 75

random.randint[1,6]
# returns 4

random.randint[1,6]
# returns 6
7 đã thay đổi danh sách ban đầu, nhưng
import random

random.randrange[100]
# returns 65

random.randrange[100]
# returns 98

random.randrange[0, 100, 3]
# returns 33

random.randrange[0, 100, 3]
# returns 75

random.randint[1,6]
# returns 4

random.randint[1,6]
# returns 6
9 vẫn giữ nguyên danh sách

Create Number Float Random

Trong phần này, bạn sẽ tìm hiểu về các hàm có thể được sử dụng để tạo các số ngẫu nhiên dựa trên các công cụ phân bổ giá trị thực tế. Các tham số của hầu hết các hàm này được đặt tên theo biến tương ứng trong phương trình thực tế của các phân tích bổ sung đó

Khi bạn chỉ muốn một số từ 0 đến 1, bạn có thể sử dụng hàm

import random

random.randrange[100]
# returns 65

random.randrange[100]
# returns 98

random.randrange[0, 100, 3]
# returns 33

random.randrange[0, 100, 3]
# returns 75

random.randint[1,6]
# returns 4

random.randint[1,6]
# returns 6
2. Nếu bạn muốn đánh số nằm trong một dãy cụ thể, bạn có thể sử dụng hàm
import random

random.randrange[100]
# returns 65

random.randrange[100]
# returns 98

random.randrange[0, 100, 3]
# returns 33

random.randrange[0, 100, 3]
# returns 75

random.randint[1,6]
# returns 4

random.randint[1,6]
# returns 6
23 với a và b tương ứng với các giới hạn bên dưới và bên trên

Giả sử bạn cần tạo một số ngẫu nhiên giữa thấp và cao sao cho có xác suất cao hơn nằm trong vùng lân cận của một số chế độ khác. Bạn có thể làm điều này với hàm

import random

random.randrange[100]
# returns 65

random.randrange[100]
# returns 98

random.randrange[0, 100, 3]
# returns 33

random.randrange[0, 100, 3]
# returns 75

random.randint[1,6]
# returns 4

random.randint[1,6]
# returns 6
24. Các giá trị thấp và cao sẽ là 0 và 1 theo mặc định. Tương tự như vậy, chế độ giá trị mặc định nằm giữa điểm của giá trị thấp và cao, dẫn đến phân bổ đối xứng

Có rất nhiều hàm khác cũng tạo ra các số ngẫu nhiên dựa trên các sự phân bổ khác nhau. Ví dụ, bạn có thể sử dụng

import random

random.randrange[100]
# returns 65

random.randrange[100]
# returns 98

random.randrange[0, 100, 3]
# returns 33

random.randrange[0, 100, 3]
# returns 75

random.randint[1,6]
# returns 4

random.randint[1,6]
# returns 6
25 để tạo ra một số ngẫu nhiên dựa trên một sự phân bổ bình thường, với mu là trung bình và sigma như là một hệ số biến thiên.

import random

random.randrange[100]
# returns 65

random.randrange[100]
# returns 98

random.randrange[0, 100, 3]
# returns 33

random.randrange[0, 100, 3]
# returns 75

random.randint[1,6]
# returns 4

random.randint[1,6]
# returns 6
8

Specify Trọng số

Như chúng ta vừa thấy, có thể tạo ra các số ngẫu nhiên với các phân bổ đồng nhất cũng như sự phân bổ tam giác hoặc bình thường. Ngay cả trong một phạm vi hữu hạn giống như từ 0 đến 100, thì vẫn có một số lượng vô hạn các số float có thể được tạo ra. Điều gì sẽ xảy ra nếu có một tập hợp các phần tử hữu hạn và bạn muốn thêm số quan trọng vào một số giá trị cụ thể trong khi chọn một số ngẫu nhiên?

Nếu ứng dụng của bạn chấp nhận có số lượng quan trọng là giá trị số nguyên, thì bạn có thể tạo một danh sách các phần tử có tần số phụ thuộc vào số quan trọng của chúng. Sau đó, bạn có thể sử dụng hàm

import random

random.randrange[100]
# returns 65

random.randrange[100]
# returns 98

random.randrange[0, 100, 3]
# returns 33

random.randrange[0, 100, 3]
# returns 75

random.randint[1,6]
# returns 4

random.randint[1,6]
# returns 6
4 để chọn một phần tử từ danh sách quan trọng này một cách ngẫu nhiên. Đây là một ví dụ minh hoạ việc lựa chọn một khoản tiền thưởng ngẫu nhiên

import random

random.randrange[100]
# returns 65

random.randrange[100]
# returns 98

random.randrange[0, 100, 3]
# returns 33

random.randrange[0, 100, 3]
# returns 75

random.randint[1,6]
# returns 4

random.randint[1,6]
# returns 6
0

Trong trường hợp của tôi, nó đã mất ít thử nghiệm để có được phần thưởng 2 đô la được lựa chọn từ danh sách. Cơ hội nhận được phần thưởng 100$ sẽ thấp hơn nhiều. Tương tự như vậy, bạn cũng có thể thêm độ lệch cho các chương trình khác

Tóm tắt phần tóm tắt

Mô-đun này có thể hữu ích trong nhiều vấn đề như trộn lẫn các câu hỏi trong bài tập hoặc tạo ra tên hoặc mật khẩu người dùng ngẫu nhiên bằng cách sử dụng hàm

import random

random.randrange[100]
# returns 65

random.randrange[100]
# returns 98

random.randrange[0, 100, 3]
# returns 33

random.randrange[0, 100, 3]
# returns 75

random.randint[1,6]
# returns 4

random.randint[1,6]
# returns 6
27. Bạn cũng có thể tạo ra các số ngẫu nhiên đồng nhất cũng như cung cấp các số quan trọng cho các con số trong một phạm vi cụ thể. Trong hướng dẫn tiếp theo, chúng ta sẽ sử dụng các hàm từ mô-đun này để tạo dữ liệu ngẫu nhiên cho phân tích thống kê

Bạn có nghĩ ra bất kỳ ứng dụng thú vị nào trong quá trình tạo ngẫu nhiên ngẫu nhiên không?

Chủ Đề