Tôi có vòng lặp for
chạy 15 lần, với dh.setDoors()
trong mỗi lần lặp lại.Các số ngẫu nhiên giống nhau lặp lại vòng lặp
Điều gì setDoors
gọi là srand(time(0))
, sau đó bất cứ khi nào cần có số ngẫu nhiên, số này sẽ sử dụng, ví dụ: carSetter = rand()%3+1
. Ngoài ra, nó có thể sử dụng decider = rand()%2+1
.
Hiện tại, thông thường decider
và carSetter
được sử dụng theo nhiều cách khác nhau, nhưng tôi nghi ngờ có vấn đề và in ra carSetter
và decider
ở mọi lần lặp lại. Dưới đây là những gì xuất hiện:
Door 1 has car
Decider is 2
Door 1 has car
Decider is 2
Door 1 has car
Decider is 2
Door 1 has car
Decider is 2
Door 1 has car
Decider is 2
etc...
Thay đổi giá trị '1' và '2' khi tôi chạy nhiều lần, nhưng vẫn giữ nguyên trong 15 lần.
Vì vòng lặp đang chạy 15 lần khác nhau, không nên carSetter
và decider
in ra một số ngẫu nhiên khác nhau mỗi lần lặp?
Khi tôi không có srand(time(0))
, nó hoạt động như mong đợi, nhưng không có bộ hạt giống, do đó, nó cùng một chuỗi số "ngẫu nhiên" mỗi lần, vì vậy có thể là vấn đề với hạt giống?
Việc gieo hạt phải được thực hiện * một lần *, bao giờ hết. Tìm hiểu về cách thức các trình tạo số giả ngẫu nhiên hoạt động, và có thể tốt hơn nếu bạn tìm hiểu một số lý thuyết xác suất trong khi bạn đang ở đó. –
Tôi chỉ sử dụng srand một lần trong setDoors, setDoors chỉ được lặp lại 15 lần. Vấn đề mà srand đang được lặp lại 15 lần? – GlassZee
Sẽ dễ dàng hơn khi mô tả giải pháp khi bạn * đăng mã thực của bạn *. –