Tôi đang tìm kiếm một cách hiệu quả để đạt được điều này:Bắt tất cả các kết hợp có thể từ một danh sách các số
bạn có một danh sách các số 1 ..... n (thường là: 1 .. 5 hoặc 1,.7 hoặc hơn - nhỏ hợp lý, nhưng có thể khác nhau tùy từng trường hợp)
bạn cần tất cả các kết hợp của tất cả các độ dài cho các số đó, ví dụ tất cả các kết hợp của chỉ một số ({1}, {2}, .... {n}), sau đó tất cả các kết hợp của hai số riêng biệt ({1,2}, {1,3}, {1,4}. .... {n-1, n}), sau đó tất cả các kết hợp cho ba số đó ({1,2,3}, {1,2,4}) và cứ thế
Về cơ bản, trong nhóm, thứ tự không liên quan, vì vậy {1,2,3} tương đương với {1,3,2} - nó chỉ là vấn đề nhận được tất cả các nhóm x số từ danh sách đó
Có vẻ như đã có là một thuật toán đơn giản cho điều này - nhưng tôi đã tìm kiếm vô ích cho đến nay. Hầu hết các thuật toán tổ hợp và hoán vị dường như là a) đưa vào tài khoản (ví dụ 123 không bằng 132), và chúng luôn có vẻ hoạt động trên một chuỗi ký tự hoặc số ...
Bất cứ ai cũng có một nice'n'quick thuật toán lên tay áo của họ ??
Cảm ơn!
cơ bản Bạn đang tìm kiếm [Năng lượng Set] (http://en.wikipedia.org/wiki/Power_set) của danh sách của bạn (đó là toán học thực sự là một tập hợp, nếu tất cả các mục của nó là duy nhất). –
Xem thêm tại đây: https://stackoverflow.com/questions/7802822/all-possible-combinations-of-a-list-of-values/41642733#41642733 – RenniePet