Arhn - архитектура программирования

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

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

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

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

  2. Четырехзначный правильный ответ содержит цифры 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).. и так далее, и я не смог продолжить запись количество комбинаций).

подход2:

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

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

14.06.2013

  • Это перестановка, а не комбинация. так что количество возможных аранжировок равно 4! = 4 * 3 * 2 * 1 = 24 14.06.2013
  • Возможные варианты (4!) будут включать те, которые нарушают указание 1 . Таким образом, они должны быть исключены из 4!. Пытаюсь найти способ сформулировать меры по устранению... 14.06.2013
  • Я просто понимаю это сейчас 14.06.2013

Ответы:


1

Итак, наш совет: 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, вычесть один случай из оставшегося 1x, вычесть один случай из оставшихся x2)

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

24-15 = 9

14.06.2013
  • Во втором упомянутом вами способе последний расчет имеет 0 позиций. Когда у нас есть 4 в позиции 4, разве 3124 не является правильной комбинацией? (1 не в 1, 2 не в 2, 3 не в 3) . Не могли бы вы написать, как это может быть 0 позиций в последнем случае? 14.06.2013
  • Почему 3142 нет в вашем списке возможных вариантов? Это не нарушает подсказку. Тем не менее, у вас есть 4132, что нарушает его, поскольку 3 находится на третьей позиции. 16.06.2013
  • @ Тренин, потому что я плохой. Фиксированный 16.06.2013

  • 2

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

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

    14.06.2013
    Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..