0 / 0 / 0
Регистрация: 14.03.2015
Сообщений: 4
1

Генерирование разбиений заданного множества

19.04.2015, 20:05. Показов 1374. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Сгенерировать все разбиения заданного множества.
Нужно написать программу по алгоритму.Спасибо
Алгоритм
1) Поместить все элементы множества в первый блок, т.е. БЛОК[i]=1, i=1,… n.
Положить ВПЕР[i] = true, i = 1,…,n.
2) Положить СЛЕД[1] = 0.
3) Выписать разбиение.
4) Положить j=n ( j – активный элемент).
5) Положить k=БЛОК[j].
6) Если ВПЕР[j]=true, т.е. j движется вперед, то перейти к шагу 7, иначе к
шагу 10.
7) Если СЛЕД[k]=0, т.е. k – последний блок, то положить СЛЕД[k]=j,
ПРЕД[j]=k и СЛЕД[j]=0.
8) Если СЛЕД[k]  j ( j образует новый блок), то ПРЕД[j]=k, СЛЕД[j] =
СЛЕД[k], ПРЕД[СЛЕД[j]]=j, СЛЕД[k]=j.
9) БЛОК[j]=СЛЕД[k] и перейти к шагу 15.
10) Если ВПЕР[j]=false, т.е. j движется назад, то положить БЛОК[j]= =ПРЕД[k].
11) Если k = j, т.е. j образует одноэлементный блок, то перейти к шагу 12,
иначе к шагу 15.
12) Если СЛЕД[k] = 0, то перейти к шагу 13, иначе к шагу 14.
13) Положить СЛЕД[ПРЕД[k]]=0 и перейти к шагу 15.
14) Положить СЛЕД[ПРЕД[k]]=СЛЕД[k], ПРЕД[СЛЕД[k]]= ПРЕД[k].
15) Выписать полученное разбиение.
16) Положить j = n.
17) Если j = 1, то алгоритм заканчивает работу. Если j > 1 и ((ВПЕР[j] and
(БЛОК[j]=j))=true или (not ВПЕР[j] and (БЛОК[j]=1))=true ), то перейти к шагу
18, иначе к шагу 5.
18) Положить ВПЕР[j] = not ВПЕР[j].
19) Положить j = j – 1 и перейти к шагу 17
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.04.2015, 20:05
Ответы с готовыми решениями:

Реализация операций над множествами. генерирование булеана конечного множества
Пусть Р - множество целых чисел (см. Таблицу). присвоить каждому из них в заданном порядке номер...

Сформировать два множества, первое из которых содержит все простые числа из заданного множества
Имеется множество, содержащее натуральные числа из некоторого диапазона. Сформировать два...

Число неупорядоченных разбиений множества из 6 различных элементов на 3
Число неупорядоченных разбиений множества из 6 различных элементов на 3 подмножества мощности 1,2,2...

Разработать алгоритм формирования всех разбиений 6 элементного множества
Разработать алгоритм формирования всех разбиений 6 элементного множества . Сформировать стек...

0
19.04.2015, 20:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.04.2015, 20:05
Помогаю со студенческими работами здесь

Разработать алгоритм формирования всех разбиений 6 элементного множества
разработать алгоритм формирования всех разбиений 6 элементного множества сформировать стек...

Сколько возможных разбиений множества из 3k элементов на 3 подмножества по k элементов в каждом подмножестве?
Я прикинул, получается формула (3k-1)!*((3k-1)!-1)*((3k-1)!-2), она верна? Или может это как-то...

Console: Построить таблицу всех различных разбиений заданного целого N>0 на сумму трех натуральных слагаемых
Задача: Построить таблицу всех различных разбиений заданного целого N>0 на сумму трех натуральных...

Генерирование заданного количества точек со случайными координатами:
if (TabControl1->TabIndex==1) { int x,y,x1,y1; CSpinEdit3->MaxValue=35000;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru