Tôi đã xem qua Python Docs (tôi có thể đã hiểu lầm), nhưng tôi không thấy rằng có một cách để thực hiện việc này (xem bên dưới) mà không cần gọi hàm đệ quy.
Điều tôi muốn làm là tạo ra một giá trị ngẫu nhiên không bao gồm các giá trị ở giữa.Python có thể tạo ra một số ngẫu nhiên không bao gồm một tập hợp các số, mà không sử dụng đệ quy?
Nói cách khác,
Hãy tưởng tượng tôi muốn X
là một số ngẫu nhiên đó không phải là trong
range(a - b, a + b)
Tôi có thể làm điều này trên đèo đầu tiên,
hoặc
1. Tôi có phải không ngừng tạo một số,
2. Kiểm tra xem trong số range()
,
3. Rửa sạch?
Đối với lý do tại sao tôi không muốn viết một hàm đệ quy,
1. nó cảm thấy như "Tôi không cần phải
2. tập các số liệu mà tôi đang làm điều này cho thực sự có thể kết thúc là khá lớn, và
... Tôi nghe thấy tình trạng tràn ngăn xếp rất tệ, và tôi có thể quá thận trọng khi thực hiện việc này.
Tôi chắc chắn rằng có một cách tốt đẹp, Pythonic, không đệ quy để làm điều đó.
Điều này sẽ hoạt động trừ khi tập hợp các câu trả lời có thể là cực kỳ lớn, trong trường hợp đó, nó sẽ sử dụng quá nhiều bộ nhớ và sự cố. –
@AndrewG: Đồng ý, nó không phải là lý tưởng nếu bạn có một phạm vi kích thước của hàng triệu/tỷ. Mặt khác, nó đơn giản và đáng nhớ. Câu trả lời của bạn, trong khi một giải pháp rất tốt đẹp và mạnh mẽ, có thể dễ bị lỗi hơn. – Junuxx
Vâng. Tôi sẽ sử dụng câu trả lời của bạn nếu a, b, c và d đã được biết từ đầu và được biết đến là một tập nhỏ, và của tôi nếu họ phụ thuộc vào đầu vào hoặc được biết đến là một tập hợp lớn. –