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

Генерирование ожерелья - C++

Восстановить пароль Регистрация
 
Bernuar
0 / 0 / 0
Регистрация: 14.03.2010
Сообщений: 19
09.11.2011, 04:42     Генерирование ожерелья #1
Здравствуйте. Вот задали такую задачку на C++. Так-то все сделал осталась только эта. На PASCAL я еще представляю как делать, а на С нет. Прошу помощи.
Круглое ожерелье состоит из N жемчужин. Каждая жемчужина либо черного, либо белого цвета. Получите все возможные варианты ожерелий, которые можно составить из N жемчужин. Требуется написать программу для решения поставленной задачи.
Примечание: Ожерелья являются замкнутыми. Это означает, например, что два ожерелья, состоящие из четырех жемчужин: белая-белая-белая-черная и белая-черная-белая-белая являются одинаковыми, а ожерелья: белая-черная-черная-белая и белая-черная-белая-черная - различны.
Формат входных данных: входной файл INP.TXT содержит единственное целое число N( 1<=N<20).
Формат выходных данных: первая строка выходного файла OUT.TXT должна содержать количество полученных ожерелий. Во всех остальных строках выходного файла должно содержаться по одному ожерелью. Ожерелье представляется в виде строки символов "Б" и "Ч", что соответствует белой и черной жемчужине. Пробелы в строке не ставятся.
P/S если конечно можно, приведите пожалуйста примеры с других языков.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
09.11.2011, 07:25     Генерирование ожерелья #2
http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{(n - 1)!}{2} вроде.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
09.11.2011, 09:06     Генерирование ожерелья #3
Цитата Сообщение от diagon Посмотреть сообщение
n!/2 вроде.
Ему нужны сами варианты, а не сосчитать их по номеру. Для проверки совпадений пробуй N-1 цикилических сдвигов одного ожерелья на одну жемчужину в одну и ту же строну, после каждого сдвига проверяй на полное совпадение. Если хотя бы одна проверка выдала true, то ожерелья одинаковы, иначе различны. А сама генерация - цикл со счётчиком от ноля до максимально представимого беззнакового целого и явный перевод этого счётчика в двоичную систему, сброшенный бит означает один цвет, установленный - другой.
Bernuar
0 / 0 / 0
Регистрация: 14.03.2010
Сообщений: 19
09.11.2011, 20:10  [ТС]     Генерирование ожерелья #4
Помогите мне сейчас пожалуйста, а я обязательно заполню эту брешь в моих знаниях. Даю слово! Тем более, я самоучка. Нам сказали, учите, то что дают. Я не хочу, (изучаем мы сейчас Pascal) и я начал изучать C++, конечно я знаю пока мало, но это только начало!
Спасибо!
Yandex
Объявления
09.11.2011, 20:10     Генерирование ожерелья
Ответ Создать тему
Опции темы

Текущее время: 05:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru