Как получить число возможных 4-значных чисел с ограничениями на возможные цифры и положение цифр

Я пытался решить проблему программирования и застрял, потому что я не мог понять один из примеров, который выглядит следующим образом:

Мы предполагаем, что четырехзначное число и "1234" . Подсказки, данные для этого предположения,

  1. Каждая из цифр не в правильном месте (согласно правильному ответу). То есть 1 не находится в положении 1, 2 не находится в положении 2, 3 не находится в положении 3 и 4 не находится в положении 4.

  2. Правильный ответ из 4 цифр содержит цифры 1,2,3,4.

В этом примере число возможных комбинаций четырехзначных чисел на основе указанных выше ограничений равно 9. {2143,2341,2413,3142,3412,3421,4123,4312,4321}

Я попытался подойти к проблеме следующим образом:

подход 1:

(Общее количество комбинаций, равное 4!) - ((Комбинации, начинающиеся с 1 в положении 1 + Комбинации с 2 в положении 2 + Комбинации с 3 в положении 3 + Комбинации с 4 в положении 4)), но не удалось получить решение для второй части приведенной выше формулы. Комбинации, начинающиеся с 1 в позиции 1, будут равны 3!- (комбинация, начинающиеся с 2 в позиции 2)... и т. д., и я не смог продолжить запись количество комбинаций).

approach2:

(1 может быть в 3 позициях) * (2 может быть в 3 или 2 позициях в зависимости от того, где 1 размещен) * (3 может быть в 1 или 2 позициях в зависимости от того, где 2 находится)*(1 позиция для 4) -- Опять не ясно, как найти количество позиций для 2,3,4.

Пожалуйста, помогите мне понять, как подойти к этой проблеме

2 ответа

Решение

Итак, наш совет: n1n2n3n4, используйте все 1234 ровно один раз.

1) Есть три места, в которые мы можем поместить 1, оставив нас с _1n3n4, _n21n4 и _n2n31.

2) Для каждого из этих трех мест есть одно число, которое может идти в трех разных местах - мы можем либо поместить его в другое запрещенное место (3*2), либо в первое место (3*1).

3а) Если мы поместим его в другое запрещенное пространство, последняя пара чисел будет иметь только одну ориентацию (6 * 1).

3b) Если мы поместим его в свободное пространство, последняя пара чисел будет иметь только одну ориентацию (3*1)

Итак, есть 9 возможностей:

_1__
2143
4123
3142

__1_
3412
4312
2413

___1
4321
3421
2341

Второй способ думать об этом так:

Есть 4! = 24 возможных перестановок.

6 позиций имеют 1 в позиции 1 (3! Способа расставить оставшиеся три)

4 позиции имеют 2 в позиции 2, но не имеют 1 в позиции 1 (3! Способа расставить оставшиеся три, вычтите два случая, где 1 в 1)

3 позиции имеют 3 в позиции 3, но НЕ имеют 1 в позиции 1 ИЛИ 2 в позиции 2 (3! Способы расставить оставшиеся три, вычесть один случай из 12, вычесть один случай из 1х оставшихся, вычесть один случай х2 осталось)

2 позиции имеют 4 в позиции 4, но НЕ имеют 1 в 1 ИЛИ 2 в 2 ИЛИ 3 в 3 (3! Способы расставить их, вычтите 2 с 1 в начале, из оставшихся вычтите 2 с 2 в середине)

24-15 = 9

Неважно, какой из них установлен, но сколько позиций установлено. Каждый раз, когда вы устанавливаете позицию, ваш выбор уменьшается на 1.

Теперь, если вы спрашиваете, как его запрограммировать, то сначала нам нужно выбрать язык.

Другие вопросы по тегам