Показать сообщение отдельно
  #7 (permalink)  
Старый 08.01.2013, 17:10
Аватар для Дзен-трансгуманист
√₋̅₁̅
Отправить личное сообщение для Дзен-трансгуманист Посмотреть профиль Найти все сообщения от Дзен-трансгуманист
 
Регистрация: 18.06.2012
Сообщений: 385

Сообщение от 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 );
__________________

Гейзенберг, возможно, читал этот тред.
Ответить с цитированием