|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.01.2011, 22:23 | #1 |
Пользователь
Регистрация: 30.06.2009
Сообщений: 98
|
C# всевозможные сочетания
Есть несколько (неизвестное количество) списков символов, из этих списков необходимо составить всевозможные строки длинной равной количеству списков.
Алгоритмы, коды, советы, мысли .... хоть что нибудь все голову уже сломал
Как вы сформулируете вопрос так вам и ответят
|
03.01.2011, 22:58 | #2 |
Дружите с Linq ;)
Форумчанин
Регистрация: 15.10.2008
Сообщений: 822
|
На сколько я понял:
У тебя даны (допустим) 2 списка: 1) авт 2) ма Составляем строки, длиной с количество списков( т.е. в данном случае 2) ав ат вт ат тв ва та ам аа ма (не знаю насчет повторений). Ну в общем так. Пишешь класс Список. Делаешь массив списков. А далее идет перебор символов.( Это сразу не соображу как лучше сделать,но все решаемо.) В общем начинай писать,выкладывай исходники,а там что-нибудь придумаем.
Не давай организму поблажки, каждый день тренируй его в шашки..
|
03.01.2011, 23:05 | #3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
ну, всё зависит от того, каким образом задаются эти самые списки и, главное, их количество...
Давайте код, как Вы задаёте Ваше "неизвестное количество" списков.. ну и ещё, почему длина конечной строки должна быть равна количеству списков ? Давайте на конкретном примере. Пусть даны три списка: {'1','2'} {'A','B','C', 'D'} {'@','#'} приведите корректные варианты сочетаний... ДОБАВЛЕНО Когда писал, не видел ответ Скарам - поэтому прошу не считать мой пост каким-то образом связанным с его ответом... |
03.01.2011, 23:14 | #4 |
Пользователь
Регистрация: 30.06.2009
Сообщений: 98
|
Скарам, не много не верно.
Serge_Bliznykov принцип таков: из списков {'1','2'} {'A','B','C', 'D'} {'@','#'} составляются следующие варианты: 1A@ 1A# 1B@ 1B# 1C@ 1C# 1D@ 1D# 2A@ 2A# 2B@ 2B# 2C@ 2C# 2D@ 2D# т.е. в получаемой строке должно быть по одному символу каждого списка списки жестко закодированы, но в ходе выполнения выбирается их количество и последовательность (что важно)
Как вы сформулируете вопрос так вам и ответят
Последний раз редактировалось xil; 03.01.2011 в 23:20. |
03.01.2011, 23:22 | #5 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Т.е. символ в строке привязан к номеру списка? и из каждого списка можно брать только один элемент?
Из приведённого мною примера такие сочетания недопустимы? Код:
Цитата:
Проиллюстрируйте свой ответ примером кода... А вообще задача может быть решена "в лоб", например, таким образом - заводите массив указателей. Размер массива равен количеству списков. И дальше туда заносим 1, 1... 1 Это строчка, состоящая из первых элементов списков. Пусть у нас есть размерность каждого списка K1 - сколько элементов в первом списке, K2 - во втором, Kn - в N-м списке.. Далее крутим цикл пока все элементы не будет равны Ki по N - му последнему элементу, пока он не достигнет Kn если достиг - увеличиваем N-1 элемент на один, а последний ставим 1 т.е. обеспечиваем в цикле добавление единицы в последний разряд с переносом числа в следующий разряд для моего пример Выше N = 3 k1 = 2 k2 = 4 k3 = 2 получаем такую последовательность индексов в массиве: 1 1 1 1 1 2 1 2 1 1 2 2 1 3 1 1 3 2 1 4 1 1 4 2 2 1 1 2 1 2 2 2 1 2 2 2 2 3 1 2 3 2 2 4 1 2 4 2 Последний раз редактировалось Serge_Bliznykov; 03.01.2011 в 23:30. |
|
03.01.2011, 23:23 | #6 |
Пользователь
Регистрация: 30.06.2009
Сообщений: 98
|
да символ из первого списка должен быть на первом месте, из второго на втором и так далее
Как вы сформулируете вопрос так вам и ответят
|
03.01.2011, 23:26 | #7 | |
Дружите с Linq ;)
Форумчанин
Регистрация: 15.10.2008
Сообщений: 822
|
Цитата:
Не давай организму поблажки, каждый день тренируй его в шашки..
|
|
04.01.2011, 01:12 | #8 |
Дружите с Linq ;)
Форумчанин
Регистрация: 15.10.2008
Сообщений: 822
|
Ну в общем задача показалась интересной,подумал немного. Решил генерить списки символов(если что конструктор можно переделать). Все остальное по заданию выше.
Код:
P.S.: Можно сделать метод,который выводит список. Ну или просто добавить в каждый конструктор после генерации что-то вроде Код:
Не давай организму поблажки, каждый день тренируй его в шашки..
Последний раз редактировалось Скарам; 04.01.2011 в 12:31. |
04.01.2011, 17:53 | #9 |
Пользователь
Регистрация: 30.06.2009
Сообщений: 98
|
разобрался =)
всем огромное спасибо, особенно Serge_Bliznykov
Как вы сформулируете вопрос так вам и ответят
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Двубуквенные сочетания | 0479 | Общие вопросы по Java, Java SE, Kotlin | 0 | 07.11.2010 19:56 |
Java Двухбуквенные сочетания | 0479 | Помощь студентам | 2 | 31.10.2010 22:59 |
Клавиатурные сочетания | kzld | Microsoft Office Excel | 2 | 13.09.2010 14:51 |
Сочетания. | Пaвeл | Помощь студентам | 2 | 12.03.2009 07:57 |