![]() |
|
Модераторы: bsa |
![]()
|
|
| htzg |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 17.4.2010 Репутация: нет Всего: нет |
народ! Целый день бьюсь с задачей:
есть файл в котором идут по очереди группы букв. Разделителем группы является символ "#". Пример:
т.е. новая группа начинается после "#" Задача: как перебрать все сочетания букв из разных групп? В выше приведенном примере кол-во сочетаний равно 3*2*4*1*3 = 72. Заранее не известно что файле(сколько групп и сколько букв в группе). |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
||||
|
||||
| Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 11 Всего: 88 |
А можно на результаты битвы хотя бы одним глазком взглянуть? з.ы. кстати, там между 'буквами' пробелы стоят или мне показалось? И что, по-твоему, означает количество сочетаний? Это сообщение отредактировал(а) Dov - 24.10.2010, 00:52 -------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
| htzg |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 17.4.2010 Репутация: нет Всего: нет |
Можно, но на самом деле я задачу(здесь) в упрощенном виде представил. Вместо букв будут массивы из string.
На примере: # a1 a2 a3 # b1 b2 b3 # c1 // всего 9 сочетаний ( 3 элемента из 1 группы, 3 элемента из 2 группы, 1 элемент из 3 группы, итого 3*3*1=9) сочетание №1: a1 b1 c1 сочетание №2: a1 b2 c1 сочетание №3: a1 b3 c1 сочетание №4: a2 b1 c1 сочетание №5: a2 b2 c1 ... сочетание №9: a3 b3 c1 Это сообщение отредактировал(а) htzg - 24.10.2010, 11:18 |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
поможет виртуальная машина паскаля..
заводите два массива цифр ( один лимиты, другой счетчики ) с размером равным кол-ву групп.. лимиты выставляете по кол-ву символов в соответсвующей группе (или плюс один, если символа из этой группы может не быть).. потом начинаете перебирать младший счетчик, как достиг лимита обнуляете и увеличиваете на один следующий счетчик, когда он в свою очередь достигнит лимита, также обнуляете и к следующий на один и т.д. на каждой итерации теперь можно формировать строку, использую счетчики как индексы символа в группе. |
|||
|
||||
| htzg |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 17.4.2010 Репутация: нет Всего: нет |
можно пример попросить? |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
http://liveworkspace.org/code/de3bf0578deb...00f066dd7bf4365
Это сообщение отредактировал(а) mes - 24.10.2010, 17:58 |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |