Каков самый короткий способ получить все комбинации K-элементов массива N-элементов, где K < = N? Мне удалось записать ниже:Самый короткий код для получения всех комбинаций K-элементов из массива N-элементов, где K <= N
> [1,2,3].instance_eval "(1..size).flat_map {|i| self.combination(i).to_a }"
=> [[1], [2], [3], [1, 2], [1, 3], [2, 3], [1, 2, 3]]
Любые идеи, как избавиться от "instance_eval"? Это, кажется, не очень элангирует: \
Как насчет назначения '[1,2,3]' имени? Как 'ary = [1,2,3]', а затем '(1..ary.size) .flat_map {| i | ary.combination (i) .to_a} ' Похоже на то, что вы вкратце –
Почему вас волнует« кратчайший »? Длина кода не очень важна. –
@NiklasB. nice, должен быть ответ – sschmeck