Hướng dẫn random sample python
Vietnamese (Tiếng Việt) translation by Dai Phong (you can also view the original English article) Show Sự ngẫu nhiên luôn xảy ra ở xung quanh chúng ta. Khi bạn tung một đồng xu hoặc một con súc sắc, bạn không bao giờ có thể chắc chắn về kết quả cuối cùng. Tính bất định này có nhiều ứng dụng như xác định người thắng cuộc khi rút thăm may mắn hoặc tạo ra các test case cho một bài test 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 random. Bạn có thể sử dụng nó trong các game để sinh ra đối thủ ngẫu nhiên hoặc để xáo trộn các phần tử trong một danh sách. Random Hoạt động Như thế nào?Gần như tất cả các hàm trong mô-đun này phụ thuộc vào hàm Đôi khi, bạn muốn trình tạo số ngẫu nhiên tạo ra chuỗi các 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 cả hai lần giá trị seed vào trình tạo số ngẫu nhiên bằng hàm 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 con 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ật mã. Tạo Số nguyên Ngẫu nhiênMô-đ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 Tương tự, bạn có thể sử dụng 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 Hàm cho Dãy sốĐể chọn một phần tử ngẫu nhiên từ một dãy số không rỗng, bạn có thể sử dụng hàm 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 thắng trong cuộc thi rút thăm may mắn 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 xáo 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 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 Một giải pháp tốt hơn là sử dụng hàm import random ids = [1, 8, 10, 12, 15, 17, 25] random.choice(ids) # returns 8 random.choice(ids) # returns 15 names = ['Tom', 'Harry', 'Andrew', 'Robert'] random.choice(names) # returns Tom random.choice(names) # returns Robert random.shuffle(names) names # returns ['Robert', 'Andrew', 'Tom', 'Harry'] random.sample(names, 2) # returns ['Andrew', 'Robert'] random.sample(names, 2) # returns ['Tom', 'Robert'] names # returns ['Robert', 'Andrew', 'Tom', 'Harry'] Như bạn có thể thấy, Tạo Số Float Ngẫu nhiênTrong 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 những sự phân bổ giá trị thực cụ thể. 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ật sự của những phân bổ đó. Khi bạn chỉ muốn một số từ 0 đến 1, bạn có thể sử dụng hàm Giả sử bạn cần tạo ra một số ngẫu nhiên giữa
low và high sao cho có xác suất cao hơn nằm trong vùng lân cận của một số mode khác. Bạn có thể làm điều này với hàm 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 những sự phân bổ khác nhau. Ví dụ, bạn có thể sử dụng import random random.random() # returns 0.8053547502449923 random.random() # returns 0.05966180559620815 random.uniform(1, 20) # returns 11.970525425108205 random.uniform(1, 20) # returns 7.731292430291898 random.triangular(1, 100, 80) # returns 42.328674062298816 random.triangular(1, 100, 80) # returns 73.54693076132074 Xác suất Trọng sốNhư chúng ta vừa mới thấy, có thể tạo ra các số ngẫu nhiên với các sự 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ư 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 trọng số vào một số giá trị cụ thể trong khi chọn một số ngẫu nhiên? Vấn đề này khá phổ biến trong hệ thống xổ số nơi số lượng ít có thưởng được cho một trọng số cao. Nếu ứng dụng của bạn chấp nhận có trọng số 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 trọng số của chúng. Sau đó bạn có thể sử dụng hàm import random w_prizes = [('$1', 300), ('$2', 50), ('$10', 5), ('$100', 1)] prize_list = [prize for prize, weight in w_prizes for i in range(weight)] random.choice(prize_list) # returns '$1' Trong trường hợp của tôi, nó đã mất mười thử nghiệm để có được một giải thưởng 2$ được lựa chọn từ danh sách. Cơ hội nhận được giải thưởng 100$ sẽ thấp hơn nhiều. Tương tự, bạn cũng có thể thêm độ lệch cho các chương trình khác. Phần Tóm tắtMô-đun này có thể hữu ích trong nhiều tình huống như xáo trộ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 Bạn có nghĩ ra ứng dụng thú vị nào trong việc tạo ra số ngẫu nhiên không? Hãy cho chúng tôi biết trong phần bình luận nhé. |