Tôi gặp vấn đề với việc ngẫu nhiên danh sách với các hạn chế trong Python (3). Tôi đã nhìn thấy một số câu hỏi khác liên quan đến điều này, nhưng không ai trong số họ thực sự dường như giải quyết vấn đề của tôi. Tôi là người mới bắt đầu, vì vậy mọi trợ giúp đều được đánh giá cao!xáo trộn danh sách với các hạn chế trong Python
Tôi đang thiết kế một thử nghiệm sử dụng hai loại kích thích: hình dạng và màu sắc (bốn trong số mỗi loại). Tôi cần phải tạo ra hoán vị của tất cả 16 kết hợp, mà tôi đã thực hiện với random.shuffle-function:
import random
# letters are shapes, numbers are colors
x=["a1","a2","a3","a4","b1","b2","b3","b4","c1","c2","c3","c4","d1","d2","d3","d4"]
random.shuffle(x)
Cho đến nay rất tốt. Tuy nhiên, tôi muốn tránh hình dạng (chữ cái) hoặc màu (số) xuất hiện hai lần liên tiếp trong kết quả của tôi (ví dụ: "a2" theo sau là "a4" hoặc "c2" theo sau là "a2").
Có cách nào để hạn chế như vậy không?
Cảm ơn bạn trước!
Cho đến nay tốt như vậy? 'random.shuffle (x)' trả về None vì nó xáo trộn 'x' tại chỗ. Do đó, 'kết quả' sẽ là Không. – zondo
Điều này có vẻ giống như một vấn đề đồ thị. Mỗi nút có một cạnh trỏ đến tất cả các nút khác ngoại trừ các nút có cùng hình dạng hoặc màu sắc (vì vậy (n-1)^2 cạnh trên mỗi nút). Và sau đó bạn muốn có một con đường ngẫu nhiên chạm vào mọi đỉnh chính xác một lần - một con đường Hamilton tôi nghĩ. –
@zondo Ồ đúng, cảm ơn vì đã chỉ ra điều đó. Tôi đã sửa lại ví dụ. – Frederik