Дмитрий Епихин

Встречайте еще одного гуманитария, который победил задачку про 2 нуля! :)

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

  1. Подумай, какое минимальное количество единиц нужно для того что бы n нулей не стояли рядом друг с другом. Сооруди эту комбинацию :)
  2. Подумай, сколько в этой конструкции получилось "ящиков", куда можно положить оставшиеся одинаковые единицы, учитывая что 1 ящик может вместить любое их количество. В комбинаторике эта штука называется "число сочетаний с повторениями".
  3. ?????
  4. PROFIT

Видео из решения учителя посмотрел - ничего не понял, но ооочень интересно! :))

И еще возник ВОПРОС! Почему в решение учителя из сочетания в котором есть только нули, можно получить 1 вариант? Нули же будут идти подряд, а это не соответствует условиям задачи.

P.S. Мой код с комментариями, если вдруг кому интересно: https://ru.hexlet.io/code_reviews/255031

3 0

Станислав Дзисяк

Приветствую, Дмитрий!

Отлично, что вы справились. Хорошее решение. Решение учителя работает аналогично вашему (сочетания), но вычисление можно произвести по другому используя тождество, которое объясняется в видео.

Условие задачи предусматривает, что не должны идти два и более нулей подряд, и решение учителя учитывает этот момент. Если вызывать функцию так:

// один ноль и ноль единиц
withoutTwoZeros(1, 0) // 1 вариант
// два нуля и ноль единиц
withoutTwoZeros(2, 0) // 0 вариантов так уже будет 2 нуля подряд
// три нуля и ноль единиц
withoutTwoZeros(3, 0) // 0 вариантов
...
1

Дмитрий Белобров

Станислав Дзисяк, где посмотреть это видео про тождество?

0

Дмитрий Епихин

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

0

Есть вопрос или хотите участвовать в обсуждении?

Зарегистрируйтесь или войдите в свой аккаунт

Нажимая кнопку «Зарегистрироваться», вы даёте своё согласие на обработку персональных данных в соответствии с «Политикой конфиденциальности» и соглашаетесь с «Условиями оказания услуг».

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

Константин Лозовский 21 апреля 2020 →

Здравствуйте! Еле-еле на основании одной формулы написал алгоритм, рассчитывающий количество возможных пере...

Aziz Apsalyamov 15 апреля 2020 →

'lodash' should be listed in the project's dependencies. Run 'npm i -S lodash' to add it import/no-extraneo...

Иван Дис 15 апреля 2020 →

Добрый день, Уважаемые Менторы! Спустя 3 дня задача была мной решена, однако это получилось только благодар...

Aziz Apsalyamov 15 апреля 2020 →

Здравствуйте. Я дошел уже до того что он выводит у меня [ '0011', '0101', '0110', '1001', '1010', '1100' ]...

Юрий Ткачук 04 апреля 2020 →

Добрый день! Помогите найти ошибку в моем коде (https://ru.hexlet.io/code_reviews/242858). На repl.it все ...