![]() |
Модераторы: volvo877, Snowy, MetalFan |
![]() ![]() ![]() |
|
Innuendo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 24.12.2005 Где: Молдова Репутация: нет Всего: 6 |
Блин, вроде программка простенькая, но я с множествами никогда не работал, и чё-то не получается
есть множество M=['A','B','C','D'] надо вывести все подмножества. Чё-то не получается.. если бы массив, я бы сделал, а с множествами как-то не особо работается -------------------- =) |
|||
|
||||
Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
Ну общий принцип такой:
|
|||
|
||||
volvo877 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
Комбинаторика? Слово "множество", кстати, еще не означает, что тебе надо работать с типом Set ... Вот программа, печатающая все возможные подмножества множества из N элементов:
А уж что именно печатать вместо цифр 1 .. N - это ты и должен брать из своего M... У тебя там символы - значит,
|
||||
|
|||||
Innuendo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 24.12.2005 Где: Молдова Репутация: нет Всего: 6 |
Zero,
С таким алгоритмом множества по 2, 3, 4 элемента не будут выводится вроде volvo877, Да, комбинаторика... Множества это что-то типа сочетаний. Я сам как раз и написал без множеств SET. Но это задание в учебнике было: есть множество M:=['A','B','C','D'] и надо вывести все подмножества... Типа надо работать именно с сетом, а не с массивами, константами и т.д. -------------------- =) |
|||
|
||||
Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: нет Всего: 61 |
volvo877,
Это быстрый в написании вариант, но, к сожалению, медленно работающий. (хотя автор и не уточнял про скорость) ![]() Множество представлено вектором наличия. При получении следующего множества нужно стремиться, чтобы оно отличалось от предыдущего как можно меньше, в идеале, в одном месте. Эта проблема генерации решена так
Обоснование можно точно посмотреть в книге Новиков "Дискретная математика для программистов". Да и в Сети думаю, оно есть.... -------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
volvo877 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
Kuvaldis, я понимаю, что это - не самый быстрый вариант... Но дело все в том, что ведь и предложенный тобой алгоритм, и любой из... ну, навскидку, еще трех-четырех, которые я смогу привести - не работают со множествами, а только с массивами/числами...
Автору, как выяснилось, это не подходит... |
|||
|
||||
Innuendo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 24.12.2005 Где: Молдова Репутация: нет Всего: 6 |
volvo877, а вообще реально это как-то делать с множествами? с множествами не так много операций можно делать... вызов элемента по индексу. Задачку не мне задали, это меня попросили. Я им дал вариант с массив и константой стринговой 'ABCD' из которой вынимались элементы, а с множествами не наю =)
Но уже ладно, задание уже не нужно (хотя всё равно интересно, можно ли такое сделать, и если нельзя то почему это задание в конце темы Set и в условии дан set =) ) -------------------- =) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi" | |
|
Запрещается! 1. Обсуждать и делится взломанными компонентами или программным обеспечением 2. Публиковать ссылки на варез 3. Оффтопить
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |