0 / 0 / 0
Регистрация: 03.10.2016
Сообщений: 30
|
|
1 | |
Написать программу, реализующую разбиение множества A01.03.2017, 23:38. Показов 2142. Ответов 1
Метки нет Все метки)
(
Я считаю, что это задание очень актуально. На мой взгляд, она немного трудна в реализации, поэтому и прошу помощи. Я понимаю, что такое разбиение множества
Допустим, дано множество А={1,3,5,6,7,8}. Тогда, к примеру, множество А в результате разбиения преобразуется в: B={1,3,5,6} и C={7,8}. А как это программно реализовать?
0
|
|
01.03.2017, 23:38 | |
Ответы с готовыми решениями:
1
Написать программу, реализующую игру в кости
Написать программу, реализующую обход доски шахматным конём Написать программу, реализующую умножение прямоугольных целочисленных матриц |
Диссидент
![]() 27697 / 17314 / 3811
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
02.03.2017, 00:28 | 2 |
![]() Решение
Zamaka2016MAKC, Нужно разбить на два множества? Это не очень сложная задача. Или получить все возможные разбиения?
Добавлено через 13 минут При разбиении на 2 множества эффективно используется двоичная система счисления. Просто генерируете все числа от 1 до 2n - 2 (обычным циклом). И там, где 0 - это элемент одного множества. 1 - другого. Если вы знакомы со смешанными системами счисления, то, имхо, и задача о разбиении на произвольное число множеств не покажется такой уж сложной. Добавлено через 26 минут Возможно, смешанные системы с/с здесь особо ни при чем. Но они меня натолкнули на мыслю. Заводим массив m[N]. m[0] = 0 (всегда. ведь какому-то множеству должон принадлежать нулевой элемент. Пусть это множество имеет номер 0) m[1] = или 0 (тому же множеству) или 1 (другому) m[k] может принимать значения от 0 до max(m[i], i<k) + 1 (условие X) для начала все m[i] = 0. Это дает тривиальное разбиение на одно множество Цикл: Прибавляем к последнему m[N-1] по 1, пока выполняется условие Х Как только это условие перестало выполняться, идем назад, и прибавляем 1 к первому же встречному, для кого при этом не нарушится условие Х. И все большие m[i] (i > измененного) обнуляем. Возвращаемся в точку Цикл. Понятно, что из цикла брекаемся, когда не удалось найти этого первого встречного Ох! Давненько я не описывал словами алгоритмы! Но в этом тоже есть свой кайф. Добавлено через 4 минуты Кстати, тут я слегка (в 2 раза ![]()
1
|
02.03.2017, 00:28 | |
02.03.2017, 00:28 | |
Помогаю со студенческими работами здесь
2
нужно написать программу на с++ реализующую все возможности печатной машинки Написать программу, реализующую умножение прямоугольных целочисленных матриц (ошибка)
Написать программу, реализующую сортировку одномерного массива методом обмена.(Найти количество перестановок элементов) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |