Vì vậy, tôi có một danh sách của các nhómcụ thể danh sách shuffling bằng Python
[['a', 'b'], ['c', 'd', 'e'], ['f']]
và tôi cần phải xáo trộn một phiên bản phẳng của danh sách này
[a, b, c, d, e, f]
để các phần tử của cùng một nhóm sẽ kết thúc ở khoảng cách nào đó với nhau. Ví dụ.
[a, c, b, d, f, e]
và không [a, c, b, d, e, f]
, vì d
và e
thuộc cùng một nhóm.
Tôi không quan tâm nếu khoảng cách chỉ là một phần tử trở lên, nhưng bất kỳ thành phần nào phải không ở gần yếu tố khác từ nhóm đó. Có bất kỳ thuật toán cho điều này?
Thuật toán cũng cần phải biết nếu điều này không thể thực hiện được.
Điều gì xảy ra khi một nhóm có nhiều thành viên hơn tất cả các nhóm khác được kết hợp? –
bạn mong đợi điều gì xảy ra nếu không thể thực hiện được, ví dụ: '[[a], [b, c, d, e, f]]' – amit
Đây là danh sách xáo trộn bí mật ở Santa. Và các nhóm là những người không quan tâm đến việc tặng quà cho nhau. – Shark