চ্যালেঞ্জটি হ'ল প্রদত্ত ধনাত্মক পূর্ণসংখ্যার সমস্ত আদেশযুক্ত পার্টিশন (রচনা (সংমিশ্রণ)) তালিকাভুক্ত করা n
। এই থেকে সংখ্যার তালিকা আছে 1
করতে n
যার সমষ্টি n
। উদাহরণস্বরূপ, প্রদত্ত ইনপুট n = 4
, ফলাফলটি হওয়া উচিত:
4
1, 3
3, 1
2, 2
2, 1, 1
1, 2, 1
1, 1, 2
1, 1, 1, 1
ফলাফল যে কোনও ক্রমে হতে পারে তবে প্রতিটি অর্ডার করা পার্টিশন একবারে অবশ্যই থাকতে হবে। এই উপায়ে যে n = 4
, [1, 1, 2]
, [1, 2, 1]
এবং [2, 1, 1]
সব ফলাফলের এর অংশ হতে হবে।
এখানে আমার নিজস্ব জাভাস্ক্রিপ্ট কোড যা এটি অর্জন করে:
function range(n) {
for (var range = [], i = 0; i < n; range.push(++i));
return range;
}
function composition(n) {
return n < 1 ? [[]] : range(n).map(function(i) {
return composition(n - i).map(function(j) {
return [i].concat(j);
});
}).reduce(function(a, b) {
return a.concat(b);
});
}
গল্ফড, ইএস 6 ( 169 167 119 109 105 89 85 বাইট ):
n=>n?[].concat(...[...Array(n)].map((x,i)=>i+1).map(b=>m(n-b).map(a=>[b,...a]))):[[]]