![]() |
|
Модераторы: bsa |
![]()
|
|
| viskar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 9.6.2008 Репутация: нет Всего: нет |
Здравствуйте…
Заклинило меня на мелочи, но тем не менее никак не могу сообразить... Имеется n-ое количество строк разной длины, пусть будет массив, например Str[0] = “ABD”; Str[1] = “DFGH”; Str[2] = “KO”; Результат должен быть ADK ADO AFK AFO и т.д. до… DHO Цель, составить все варианты уникальных сочетаний символов, из каждой строки берется по 1 символу…. буду очень признателен если кто поможет... |
|||
|
||||
| Rififi |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 3 Всего: 36 |
делаешь n вложенных циклов
for(n0 = 0..Str[0].Length-1) for(n1 = 0..Str[1].Length-1) for(n2 = 0..Str[2].Length-1) print Str[0][n0] Str[1][n1] Str[2][n2] "\n" |
|||
|
||||
| viskar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 9.6.2008 Репутация: нет Всего: нет |
не пойдет строк n-ое количество может быть пять а можеть и пять тысяч |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
viskar, а ты думал? Сделай переменные циклов в динамическом массиве (самая последняя приращается каждый раз (в конце строки обнуляется), предпоследняя приращается только, когда последняя достигла символа конца строки и так далее).
|
|||
|
||||
| v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: нет Всего: 56 |
есть у тебя масив строк:
String Str[n]; вводишь ещё один массив: int postitions[n][m]; к элементам своей строки будешь обращаться через индекс postitions[n][m]. когда одну строку закончил формировать увеличиваешь последний postitions[n][m] на 1, если postitions[n][m]>Str[n].len , тогда предпоследний увеличиваешь на 1 и т.д.... Добавлено через 55 секунд м-да , пока набирал bsa уже ответил. |
|||
|
||||
| viskar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 9.6.2008 Репутация: нет Всего: нет |
всем спасибо...
наверное эту задачу я решу не сегодня...... |
|||
|
||||
| Mim |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 14.5.2008 Репутация: нет Всего: нет |
Не хотелось бы Вас расстраивать, но с такими запросами не справится и IBM Roadrunner. Для начала я бы предложил посчитал количество возможных уникальных сочетаний. Для более простого понимания, возьмём массив, в котором все строки имеют длину, равную m. Количество сочетаний будет равняться m^n (m в степени n). Так, например, для 30 строк, состоящих всего лишь из 2 символов каждая Вы получите 2^30=1 073 741 824 сочетаний по 30 символов, итого 30 GiB информации (из рассчёта 1 байт на 1 символ), которую, как я понимаю, надо будет как-то сохранить. При 31, 32 и 33 строках (опять же по 2 символа) вы получите 62, 128 и 264 GiB соответственно. У Вас сложность и объём выходных данных растёт экспоненциально, так что стоит подумать о разумных ограничениях в данной задаче. Я бы не рекомендовал использовать строки более 8 символов и массивы более 8 строк. Насколько я понимаю, нахождение всех уникальных сочетаний лишь подзадача. Если так, то можно ли привести задачу целиком? Возможно удалось бы избежать необходимости полного перебора. Это сообщение отредактировал(а) Mim - 10.6.2008, 15:29 |
|||
|
||||
| CppDevelopeR |
|
|||
![]() Experienced Expert ![]() ![]() Профиль Группа: Участник Сообщений: 390 Регистрация: 7.1.2008 Где: Moscow-City Репутация: нет Всего: 9 |
А вообще для таких тем есть "Центр Помощи".
|
|||
|
||||
![]()
|
| Правила форума "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. |