Сообщение от Gambit228
|
все возможные массивы натуральных чисел
|
Вариант 2: Если порядок взаимного расположения чисел в массиве важен (
Композиция числа)
function createCompositionIterator ( integer ) {
if ( !isFinite( integer = +integer ) || integer < 1 || integer != integer ^ 0 ) {
return null;
}
var layout = Math.pow( 2, integer - 1 );
return function () {
if ( !layout ) {
return null;
}
layout--;
var result = [], bitmap = layout, last = 1, left = integer;
while ( left-- ) {
if ( bitmap % 2 ) {
last++;
bitmap--;
}
else {
result.unshift( last );
last = 1;
}
bitmap /= 2;
}
return result;
}
}
function test ( integer ) {
var text = '';
var next = createCompositionIterator( integer );
var layout;
while ( layout = next() ) {
text += layout + '\n';
}
alert( text );
}
test( 3 );
test( 4 );
test( 5 );
test( 6 );