Thêm yếu tố vụng về
Với đoạn mã gọn gàng bạn đã viết, việc thay đổi số lần mô phỏng random walk trở nên cực kỳ dễ. Bạn chỉ cần cập nhật hàm range() trong vòng lặp for cấp cao nhất.
Nhưng vẫn còn thiếu một chi tiết! Bạn hơi vụng về và có 0,5% khả năng bị ngã. Điều này cần thêm một lần sinh số ngẫu nhiên. Về cơ bản, bạn có thể sinh một số thực ngẫu nhiên trong khoảng từ 0 đến 1. Nếu giá trị này nhỏ hơn hoặc bằng 0,005, bạn nên đặt lại step về 0.
Bài tập này là một phần của khóa học
Python nâng cao
Hướng dẫn bài tập
- Thay đổi hàm
range()để chạy mô phỏng 20 lần. - Hoàn thiện điều kiện
ifđể đặtstepvề 0 nếu một số thực ngẫu nhiên nhỏ hơn hoặc bằng 0,005. Dùngnp.random.rand().
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# numpy and matplotlib imported, seed set
# clear the plot so it doesn't get cluttered if you run this many times
plt.clf()
# Simulate random walk 20 times
all_walks = []
for i in range(5) :
random_walk = [0]
for x in range(100) :
step = random_walk[-1]
dice = np.random.randint(1,7)
if dice <= 2:
step = max(0, step - 1)
elif dice <= 5:
step = step + 1
else:
step = step + np.random.randint(1,7)
# Implement clumsiness
if ___ :
step = 0
random_walk.append(step)
all_walks.append(random_walk)
# Create and plot np_aw_t
np_aw_t = np.transpose(np.array(all_walks))
plt.plot(np_aw_t)
plt.show()