Coding for KidsCoding for Kids
Cấp Độ Sáng TạoThử TháchHướng Dẫn Giáo Viên
Bình chọn tính năng
Khóa học Phát triển Python Nâng cao
Chương
>
Cấp độ

Mô-đun Toán Học
Module Ngẫu Nhiên

Mục tiêu

Chạy mô phỏng và kiểm tra để chuẩn bị cho bất kỳ lỗi và trở ngại nào trong quá trình xây dựng khu nông nghiệp bằng cách sử dụng mô-đun random.

Qua hành lang phụ, có một văn phòng xử lý một số nhiệm vụ hành chính liên quan đến giấy tờ về vận chuyển, nhà ở và hậu cần cho công trình. Sẽ là một ý tưởng hay khi chạy một số kịch bản sử dụng dữ liệu có sẵn để tính toán các trở ngại và sự cố thiết bị. Để hỗ trợ việc này, chúng ta có mô-đun random, được kích hoạt bằng import random.

Mô-đun này được sử dụng để tạo ra các kết quả ngẫu nhiên với các mức độ khác nhau, cho phép bạn thực hiện mô phỏng hoặc thêm các yếu tố ngẫu nhiên vào các phép tính/bài tập của bạn. Cho mục đích của chúng ta, chúng ta sẽ sử dụng các hàm sau:

  • random.seed(): Đặt hạt giống cho việc sinh số ngẫu nhiên, nhận một đối số là số hạt giống mà bạn muốn sử dụng. Điều này có nghĩa là bất kỳ hàm ngẫu nhiên nào được sử dụng với cùng một hạt giống sẽ trả về cùng kết quả khi sử dụng. Điều này giúp kiểm soát việc sinh số ngẫu nhiên và có thể tái tạo các kết quả nhất định.
  • random.random(): Trả về một số float ngẫu nhiên giữa 01.
  • random.randint(): Nhận hai (2) đối số, sinh một số giữa hai đối số đó, bao gồm cả các giá trị biên. Kết quả trả về là số nguyên.
  • random.uniform(): Tương tự như hàm trước nhưng trả về một số float ngẫu nhiên thay vì số nguyên.
  • random.triangular(): Tương tự như hàm trước nhưng có thêm một đối số bổ sung làm tham số điều chỉnh gọi là mode. Mode cần phải là một số nằm giữa hai số trong phạm vi ngẫu nhiên. Số ngẫu nhiên được tạo ra sẽ có xu hướng gần với mode hơn so với một số hoàn toàn ngẫu nhiên giữa hai đối số đầu tiên.
  • random.choice(): Nhận một danh sách làm đối số, chọn ngẫu nhiên một (1) phần tử từ danh sách.
  • random.choices(): Sinh một danh sách ngẫu nhiên được lấy mẫu từ một danh sách khác, nhận ba (3) đối số: một danh sách bạn muốn lấy mẫu, một danh sách khác chỉ định trọng số bạn muốn lấy mẫu từ mỗi phần tử trong danh sách đó và cuối cùng là một biến có tên k mà bạn gán giá trị chỉ định số mẫu bạn muốn lấy từ danh sách. Số mẫu có thể nhiều hơn độ dài của danh sách vì nó sẽ tạo ra các phần tử trùng lặp dựa trên trọng số bạn đã chỉ định.
  • random.shuffle(): Nhận một danh sách làm đối số và xáo trộn nó một cách ngẫu nhiên.
  • random.sample(): Nhận hai đối số, một danh sách để lấy mẫu và số lượng mẫu bạn muốn lấy. Đây là phiên bản đơn giản của random.choices().

Để bắt đầu, hãy đi đến dấu X sáng và đứng đối diện với bàn làm việc, sử dụng hàm read() để đọc bản thông báo và xác định các điểm dữ liệu cần thiết để chạy một mô phỏng với một số biến thể ngẫu nhiên. Chúng ta sẽ chạy một mô phỏng hỏng hóc thiết bị; bản thông báo sẽ cho biết seed nào cần chạy cho việc sinh số ngẫu nhiên cũng như danh sách mà nó lấy mẫu từ đó. Sử dụng hàm random.seed() và chèn giá trị được cung cấp trong bản thông báo.

Hãy đi đến dấu X tối trên thảm xanh và đứng đối diện với bàn làm việc, chúng ta có một hằng số danh sách có tên sectors chứa các khu vực của khu nông nghiệp được nêu trong bản thông báo trước đó. Tạo một biến có tên selection để lưu trữ giá trị của random.choice(), sử dụng hằng số danh sách sectors để lấy mẫu từ danh sách, như sau: selection = random.choice(sectors). Tạo một biến khác có tên delay và lưu trữ giá trị của random.random() để mô phỏng sai số do sự chậm trễ.

Tạo thêm một biến có tên defect và lưu trữ giá trị của random.randint() để tạo ra phần trăm khả năng hỏng hóc thiết bị. Thêm các đối số 015 để tạo ra phần trăm giữa hai số này. Khi các biến: selection, delaydefect đã được thiết lập, sử dụng hàm write() đã được viết sẵn với ba (3) biến theo thứ tự đó, để ghi lại các điểm dữ liệu có thể dùng để kiểm tra các vấn đề tiềm ẩn trong quá trình xây dựng.

Hãy đi đến dấu X vàng và sử dụng hàm read() để tiếp tục chạy các dự báo; dữ liệu trong bản thông báo sẽ chứa vật liệu, số lượng và dữ liệu lấy mẫu. Chúng ta sẽ chạy một mô phỏng quy mô lớn hơn sử dụng dữ liệu trong bản thông báo, bao gồm một hằng số danh sách có tên materials chứa các loại vật liệu được nêu trong thông báo.

Hãy đi đến dấu X tối trên thảm đỏ và đứng đối diện với bàn làm việc. Tạo một danh sách có tên weights và lưu trữ bốn (4) giá trị số có trong bản thông báo tương ứng với các vật liệu theo thứ tự được trình bày. Ví dụ: weights = [400, 600 , -insert value-, -insert value-]

Tạo một biến có tên simulation và lưu trữ giá trị của random.choices(), thêm hằng số danh sách materials, danh sách weights bạn đã tạo và một đối số với tên k chứa các đơn vị lấy mẫu được nêu trong bản thông báo, như sau: simulation = random.choices(materials, weights , k = insert sampling units ). Sử dụng biến simulation với hàm write() đã được viết sẵn để ghi lại dữ liệu.

Hãy đi đến dấu X tối trên thảm xanh và đứng đối diện với bàn làm việc, sử dụng hàm random.shuffle() với danh sách simulation bạn đã tạo để xáo trộn nó, như sau: random.shuffle(simulation). Điều này sẽ xáo trộn danh sách, không cần lưu giá trị vì nó thay đổi danh sách trực tiếp. Tạo một danh sách có tên sample để lưu trữ giá trị của random.sample(), thêm danh sách simulation làm đối số đầu tiên và đối với đối số thứ hai, lấy mẫu 3 để lấy ba (3) phần tử ngẫu nhiên làm mẫu, như sau: sample = random.sample(simulation, k=3). Sử dụng simulationsample với hàm write() đã được viết sẵn để ghi lại các mẫu mới.

Cuối cùng, hãy đi đến dấu X tối trên thảm tím và đứng đối diện với bàn làm việc, tạo một biến có tên defect và lưu trữ kết quả của random.uniform(), thêm các đối số 310. Đây là các giá trị lấy mẫu cho mô phỏng ban đầu và mẫu được lấy ra từ đó; chúng ta sẽ sử dụng chúng để tạo ra các biên độ lỗi thiết bị tiềm năng từ mẫu đã lấy ra.

Tạo một biến có tên losses và lưu trữ giá trị của random.triangular(), thêm các giá trị 200, 600400. Đây là các con số vật liệu được nêu trong bản thông báo trước đó, cụ thể là giá trị thấp nhất, cao nhất và giá trị gần giữa nhất. Điều này cho phép chúng ta có được một giá trị ngẫu nhiên theo hình tam giác dựa trên số lượng vật liệu mà mô phỏng đã sử dụng. Sử dụng các giá trị defectlosses với hàm write() đã được viết sẵn để lấy kết quả và hoàn thành cấp độ.

Sách Mã