Форум программистов, компьютерный форум CyberForum.ru

Рекурсия для начинающих. Определите, сколько существует последовательностей из a нулей и b единиц, в которых никакие два нуля не стоят рядом - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Синхронизация потоков в c++ http://www.cyberforum.ru/cpp-beginners/thread945396.html
Совершенно не понятно что не так и как правильно. Задача: Отсортировать массив целых чисел. Программу разбить на два синхронизированных потока. Объект синхронизации на свое усмотрение. Я выбрал критическую секцию. Первый поток заполнение и сортировка массива, второй - вывод на консоль. Когда запускаю приложение, то никаких ошибок нет, но консоль тут же закрывается. Мой код: #include...
C++ Написать пару функций Max, возвращающих то из чисел, которое было передано большее число раз Задание: Реализуйте пару функций Max, принимающих два целочисленнных параметра и два числа с плавающей точкой соответственно и возвращающих то из чисел, которое было передано этой функции большее число раз. Для хранения полученных ранее чисел воспользуйтесь в этих функциях статическими переменными. В случае, когда оба парметра встречались одинаковое число раз, функция должна возвращать первый из... http://www.cyberforum.ru/cpp-beginners/thread945392.html
Оператор для xor шифрования C++
Разматриваю пример шифрования, возник детский вопрос ^ что делает этот оператор?
C++ Класс Time через time(0)
Всем привет. На форуме искал ничего похожего не нашол. Не могу до конца разобраться. В класе 1 член, который держит секунды, которые берутся в конструкторе функцией time(0). Нада вывести время(ч:м:с) и дату(д/м/г). С временем розобрался, с годом в дате тоже, но не могу понять как найти день и месяц.
C++ Нарисовать карту, отслеживать координаты остановок http://www.cyberforum.ru/cpp-beginners/thread945266.html
Задача заключается в том что надо нарисовать карту в которой есть дороги, остановки, маршрутные пути... При в воде 2-х остановок программа должна показать все возможные номера маршруток на которых можно доехать а при выборе маршрутки проложить путь ( в идеале показать анимацией как маршрутка(кружочек) двигается по выделенной дороге) Кто может подсказать каким образом,методом, с помощбю каких...
C++ Обпределение запуска программы Доброго времени суток. Если есть одна программа и она запущенна, то как можно определить, что эту же саммую программу запускают еще раз (с коммандной строки например с другими аргументами) и не запускать еще раз а просто изменить в уже запущенной. Может быть я не понятно написал, потому объясню что хочу сделать. Что-то типа проводника в windows, и если я пишу в командной строке myprogram C:\ , то... подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6172 / 2901 / 284
Регистрация: 04.12.2011
Сообщений: 7,715
Записей в блоге: 3
30.08.2013, 13:42     Рекурсия для начинающих. Определите, сколько существует последовательностей из a нулей и b единиц, в которых никакие два нуля не стоят рядом
Цитата Сообщение от Somebody Посмотреть сообщение
IGPIGP, если в этом "каркасе" заменить несколько нулей на единицы, то уже появляется возможность заменить какие-то единицы на нули.
1010 -> 1101
Да. Сыровато получилось.
Особенно самая последняя формула.
Тем не менее, именно каркас для четных чисел и есть пока главная ценность представленной идеи. Плохо, что к чистой рекурсии, он приводит только для чисел c длиной вида 2^n
Смотрите, только в четном числе каркас однозначен. Например в записи:
10101010
нельзя сдвинуть ни одну единицу. Но тогда для числа:
11111101 a=1, b=7 на этом каркасе (10101010)
получаем вопрос: сколько можно построить чисел из 7-4=3 единиц (избытка над каркасом) на 4-х нулях (свободных нулях каркаса)
И для чисел длина которых 2^n , можно делить пока есть свободные единицы.
Для нечётных всё сложнее. Пока удалось додуматься, что для записи длиной n = 2k+1 можно построить k+1 каркасов. То есть не один:
для 3 -> 2
101
110
для 5 -> 3
10101
10110
11010
для 7 -> 4
...
Далее еще видно, что каждый каркас нечётного, можно получить из каркаса предыдущего чётного, приписав в конце 1 или записав 1 рядом с существующей (с любой стороны но один раз)). Отсюда и k+1. Пока не вижу как построить рекурсивную цепь рассуждений. Четность и нечётность может быть встречена, на каждом шаге, при снижении длины записи, в любой последовательности.
Ещё интересно, что некоторые каркасы (нечётных n), похоже, не могут дать новых чисел ни при каких условиях, но пока не продумывается.
Может и непродуктивно это всё.
 
Текущее время: 08:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru