JavaScript: Без двух нулей

Обновлено: 02 июня, 06:12
3021
Студент
58%
Завершения

solution.js

Реализуйте и экспортируйте по умолчанию функцию, которая принимает на вход два аргумента - количество нулей и количество единиц, и определяет сколько есть способов размещения этих нулей и единиц так, чтобы не было двух нулей идущих подряд.

Например, определим все способы размещения двух нулей и двух единиц. Существует шесть возможных способов размещения: 0011, 0101, 0110, 1001, 1010, 1100. В трех случаях содержится два нуля, идущих подряд: 0011, 1001 и 1100. Вычитаем их из общего числа и получаем три возможных способа: 0101, 0110 и 1010. Ответ - 3.

Примеры использования:

import withoutTwoZeros from './solution';

withoutTwoZeros(2, 2); // 3
withoutTwoZeros(1, 1); // 2
withoutTwoZeros(1, 3); // 4
withoutTwoZeros(2, 4); // 10
// Если в наборе одни нули, нет ни одного способа
withoutTwoZeros(3, 0); // 0

// Если в наборе только единицы, то есть только один способ
withoutTwoZeros(0, 3); // 1

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

Подсказки

  • https://ru.wikipedia.org/wiki/Сочетание
  • разбор тождества комбинаторики https://youtu.be/F_0DwN--bTM?t=3109

Для полного доступа к испытанию нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Отзывы

Аватар пользователя Виктория Фомина
Виктория Фомина 05 декабря 2019

Спасибо за прекрасную задачу!


Аватар пользователя Тимофей Ч.
Тимофей Ч. 09 ноября 2019

Не занимался несколько месяцев, решил повторить курс. Тогда решал задачу целый день, и получилось достаточно коряво. Сегодня открыл, поначалу испугался, думал, провожусь долго, но нет, справился за час, и сразу написал без изменяемых состояний. Хорошо Хекслет рекурсии вбил в голову!)


Аватар пользователя Natalia A.
Natalia A. 30 сентября 2018

Теперь у меня есть печальный опыт (на 35 строк) приступания к заданию до того, как придумаешь оптимальный алгоритм. Лучшая практика на Хекслете, очень поучительно, спасибо :) PS: ребята, не сдавайтесь, пусть даже так круто как у учителя не выйдет, продолжайте. Превозмогая трудности!


Аватар пользователя Igor Averin
Igor Averin 09 сентября 2018

Сразу же начал решать через формулы комбинаторики, что затянуло выполнение. Наверное можно было бы решить "костыльными" методами быстрее, но стало интересно освежить знания и потренироваться. Задача интересная! Спасибо что вернули! :)


Аватар пользователя Андрей Кашаев
Андрей Кашаев 19 июля 2018

Хорошая, задачка. Ломал голову целый день, но в итоге вывел формулу для получения количества перестановок с 00. Как? Экспериментально, Ватсон! После этого все решилось, причем за 0.3сек )) Решение учителя пока не понял, но красивое.