@andreyfilippov3001

JS. Как подсчитать количество комбинаций цифр в числе?

У меня есть число, в котором могут быть только две цифры - 1 и 2 (Количество единиц и двоек может быть разное).
Как мне найти количество всех комбинаций этого числа, исключая повторяющиеся?

Например:
  • число 112 - количество комбинаций - 3 (112, 121, 211),
  • число 1112 - 4 комбинации (1112, 1121, 1211, 2111)
  • число 11122 - 9 комбинаций (11122, 11212, 12112, 21112, 21121 ...)
  • Вопрос задан
  • 396 просмотров
Решения вопроса 1
lssssssssssl
@lssssssssssl
function nextLexInPlace(arr) {
    let i, a = -1, b = -1;
    for( i = 0; i < arr.length-1; i++) if(arr[i] < arr[1+i]) a = i;
    if( !~a) return; // no more permutations
    for( i = a + 1; i < arr.length; i++) if(arr[a] < arr[i]) b = i;
    swap(arr, a, b);
    a++;
    b = arr.length - 1;
    while( a < b) swap(arr, a++, b--);
    return true;
}

function swap( arr, a, b) {
    let xx = arr[a];
    arr[a] = arr[b];
    arr[b] = xx;
}

function allMutations( source ) {
    let result = [], arr = Array.from(String(source)).slice();
    result.push( arr.sort().slice());
    while( nextLexInPlace(arr)) result.push(arr.slice());
    return result.join('..').replace(/,/g,'')
}

console.log(allMutations(112))
console.log(allMutations(1112))
console.log(allMutations(11122))


Решение: Как составить все возможные комбинации? Сергей Соколов

Чуть-чуть видоизменил под конкретную ситуацию
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
(N1 + N2)! / (N1! * N2!)
Ответ написан
Комментировать
w3bsmes
@w3bsmes
Куратор тега «Глупые вопросы»
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы