Với mảng đầu vàoCó tên cho hoạt động thiết lập/mảng này không?
và một chức năng 'tham gia' (a,b) => (a+b)
mã của tôi trả về mảng sau đây của mảng, chứa mỗi biến có thể thu được bằng cách áp dụng các chức năng tham gia vào cặp khác nhau của các yếu tố trong khi duy trì thứ tự:
[
[a,b,c,d,e],
[a,b+c,d,e],
[a,b+c+d,e],
[a,b,c+d,e],
[a+b,c,d,e],
[a+b,c+d,e],
[a+b+c,d,e],
[a+b+c+d,e],
[a,b,c,d+e],
[a,b+c,d+e],
[a,b+c+d+e],
[a,b,c+d+e],
[a+b,c,d+e],
[a+b,c+d+e],
[a+b+c,d+e],
[a+b+c+d+e],
]
Nhìn bề ngoài, những gì tôi đang cố gắng để làm được điều này:
Mã hoạt động nhưng tôi không biết phải gọi nó là gì - và muốn sử dụng tên mà các nhà phát triển khác quen thuộc với thao tác này sẽ hiểu, nên tên như vậy tồn tại. Nó không phải là một bộ điện nhưng nó là một cái gì đó tương tự ... không hoạt động này thiết lập/mảng cụ thể có một tên?
EDIT: OK. Chúng không phải là hoán vị; hoán vị tất cả sẽ là mảng 5 phần tử theo các thứ tự khác nhau [[a,b,c,d,e], [e,d,c,b,a], [a,d,b,c,e], ...]
Chúng không phải là phân vùng, vì bất kỳ tập hợp con nào chỉ có thể chứa các phần tử liền kề của đầu vào. - nói cách khác, các phân vùng sẽ cho phép điều này:
(Điều này có lẽ bắt nguồn từ lý thuyết tập hợp tinh khiết không có khái niệm về một tập có thứ tự.)
Họ không kết hợp vì mỗi yếu tố của đầu ra sử dụng mọi thành viên của bộ đầu vào chính xác một lần.
Tôi nghĩ myArray.OrderedPartitions((a,b) => (a+b))
có lẽ là một cách ngắn gọn và phù hợp.
GetPermutations? – KingCronus
Tại sao '[a + b + c + d + e]' bị thiếu? – Landei
@Landei lỗi của tôi :) Đã chỉnh sửa câu hỏi để bao gồm hoán vị còn thiếu. –