Hầu như ngôn ngữ lập trình nào cũng đều hỗ trợ khả năng sinh ra số ngẫu nhiên cho lập trình viên. Vì thế, trong bài này, tôi sẽ tóm lược vài phương pháp tạo số ngẫu nhiên trong Python.

Tạo số ngẫu nhiên trong Python

Có thể bạn đã biết, trong Python, việc tạo số ngẫu nhiên được goi thông qua hàm random() trong module random cùng tên luôn.

Các hàm cơ bản

Cách sử dụng thì không có gì khó khăn cả.

import random

print("Random: %f" % random.random())

Kết quả sẽ ra một số ngẫu nhiên trong khoảng từ 0 tới 1, và đó là số thập phân.

Vậy làm sao để lấy một số ngẫu nhiên là kiểu số nguyên trong một khoảng nào đó? Ví dụ đơn thuần đi, lấy ra một số nguyên ngẫu nhiên trong khoảng từ 1 tới 1000.

Ở trường hợp này, thay vì sử dụng hàm random(), chúng ta sẽ sử dụng hàm randint().

Cách dùng thì cũng không khác mấy so với hàm random() ở trên.

import random

print("Random integer 1..100: %d" % random.randint(1, 100))

Bạn có thể thử, mỗi lần chạy thì nó sẽ lấy ra một số ngẫu nhiên trong khoảng đó.

Làm sao để có thể lấy ra một số thập phân ngẫu nhiên trong khoảng 1..100?

Bạn có thể sử dụng hàm random() rồi lấy kết quả nhân với 100.

Hoặc cũng có thể sử dụng một hàm được cung cấp sẵn cho việc này uniform()

import random

print("Random float 1..100: %f" % random.uniform(1, 100))

Ứng dụng của số ngẫu nhiên

Có thể bạn chưa biết, số ngẫu nhiên được ứng dụng khá mạnh trong lập trình. Một vài ví dụ điển hình:

  • Giới thiệu sản phẩm. Khi bạn lướt qua một trang mua sắm thương mại điện tử, bạn vào xem một sản phẩm, thì hệ thống có thể giới thiệu cho bạn ngẫu nhiên vài sản phẩm cùng chuyên mục.
  • Trò chơi may mắn. Bạn có nhớ mấy cái sự kiện gắp quà trúng thưởng hay lắc lắc để nhận quà rủng rỉnh của Tiki, hay Momo không?
  • Tỉ lệ rớt vật phẩm trong game. Không phải vật phẩm tự dưng rớt ra theo một phương pháp cố định nào cả, nó có chỉ số ngẫu nhiên để rớt ra. Còn rớt hay không thì phụ thuộc vào độ may mắn của người chơi.
  • …còn rất nhiều ví dụ khác nữa.

Ví dụ: đoạn code sau đây sẽ lấy ra 3 sản phẩm ngẫu nhiên trong danh sách:

import random

phones = ['iPhone X', 'iPhone XS', 'XiaoMI 10', 'Vinsmart Joy+1', 'Bphone 2', 'Google Pixel', 'Samsung Galaxy S10']

random.shuffle(phones)

print('Recommend Phones: %s | %s | %s' % (phones[0], phones[1], phones[2]))

Ở ví dụ này, tôi sử dụng hàm shuffle() để thực hiện đảo vị trí các phần tử trong list rồi lấy ra 3 phần tử đầu tiên. Vì hàm shuffle() thực hiện một cách hoàn toàn ngẫu nhiên nên tất nhiên là 3 phần tử lấy ra cũng là ngẫu nhiên.

Tuy vậy, sử dụng shuffle() trong trường hợp này cũng chưa hoàn toàn tối ưu.

Đối với việc lấy ra ngẫu nhiên N phần tử trong danh sách thì nên sử dụng hàm sample() sẽ phù hợp hơn.

>>> print(random.sample(phones, 3))

['Samsung Galaxy S10', 'iPhone XS', 'Bphone 2']

>>> print(random.sample(phones, 3))

['Vinsmart Joy+1', 'iPhone X', 'XiaoMI 10']

Đây chỉ là một ví dụ đơn giản chứng mình cho việc giới thiệu sản phẩm bằng cách lấy ngẫu nhiên khá là thực tế.

Hi vọng qua bài này các bạn có thể hiểu và nắm được các phương pháp tạo số ngẫu nhiên trong Python và các ứng dụng cơ bản của nó.

LEAVE A REPLY

Please enter your comment!
Please enter your name here