IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> масив
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Всем привет! )

И так вот такая у меня трабла:
Есть числа (от 1 до 10), нужно заполнить масив таким образом чтобы он виглядал вот так:

----------------------
№ | | | | | | |
----------------------
1 | 1| | | | | |
2 | 1|2| | | | |
3 | 1|3| | | | |
4 | 1|4| | | | |
5 | 1|5| | | | |
6 | 1|2|3| | | |
7 | 1|2|4| | | |
8 | 1|2|5| | | |
9 | 1|3|4| | | |
10 | 1|3|5| | | |
11 | 1|4|5| | | |
12 | 1|2|3|4| | |
13 | 1|2|3|5| | |
14 | 1|2|4|5| | |
15 | 1|3|4|5| | |
16 | 1|2|3|4|5| |
... |..|..|..|..|..|..|
---------------------

то есть идет выборка (хз как её назвать)
сначала по два елемента ([1,2], [1,3], [1,4], [1,5])
потом по три ([1,2,3], [1,2,4], [1,2,5], [1,3,4], [1,3,5], [1,4,5])
потом по 4 ...
потом по 5 ...
и так до 10

p.s. (ето мне нужно для реализации алгоритма для решения задачи о максимальном потоке методом сечения)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


procedure Gen_ver_R;
var x,i,j,k,y,count :integer;
begin
// 1-2
masGeneral[1,1] := 1; // вершина 1 , ( masGeneral[1..20000,1..10] - главная матрица )
count := 2;
x:=2;
for i:=x to 5 do
begin
masGeneral[count,1] := 1;
masGeneral[count,2] := i;
Inc(count); //каунт для рядків
// SetLength(masGeneral, count, 10);
end;

//1-3
x:=3;
for i:=2 to 4 do
begin
for j:=x to 5 do
begin
masGeneral[count,1] := 1;
masGeneral[count,2] := i;
masGeneral[count,3] := j;
Inc(count);
end;
Inc(x);
end;

//1-4
x:=3;
y:=4;
for i:=2 to 3 do
begin
for j:=x to 4 do
begin
if y = 6 then Dec(y); // для відображ. 1.3.4.5 так як у стає = 6 то ми dec(y)
for k:=y to 5 do
begin
masGeneral[count,1] := 1;
masGeneral[count,2] := i;
masGeneral[count,3] := j;
masGeneral[count,4] := k;
Inc(count);
end;
Inc(y);
end;
Inc(x);
end;
end;


Результат:

№ | | | | | | |
----------------------
1 | 1| | | | | |
2 | 1|2| | | | |
3 | 1|3| | | | |
4 | 1|4| | | | |
5 | 1|5| | | | |
6 | 1|2|3| | | |
7 | 1|2|4| | | |
8 | 1|2|5| | | |
9 | 1|3|4| | | |
10 | 1|3|5| | | |
11 | 1|4|5| | | |
12 | 1|2|3|4| | |
13 | 1|2|3|5| | |
14 | 1|2|4|5| | |
15 | 1|3|4|5| | |

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Helm @ 1.12.2009 20:37) *
сначала по два елемента ([1,2], [1,3], [1,4], [1,5])
потом по три ([1,2,3], [1,2,4], [1,2,5], [1,3,4], [1,3,5], [1,4,5])
потом по 4 ...
потом по 5 ...
и так до 10

Не очень ясно, как ты предполагаешь сделать до 10, если у тебя увеличение в столбце идет только до 5.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата
то есть идет выборка (хз как её назвать)
Вообще-то это называется "Подмножество". Алгоритм генерации подмножеств для заданного множества есть у нас в FAQ-е, в разделе "Комбинаторика". Но там генерация происходит не в том порядке, что тебе надо, так что после заполнения массив еще надо будет отсортировать. В принципе - это не должно занять много времени, для 10 чисел всего 210 = 1024 элемента массива.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 10
Пол: Женский
Реальное имя: Анна

Репутация: -  0  +


Тоже вопрос по массиву.
есть матрица квадратная. размерность 2*n
поменять по часовой стрелке ее блоки размерами n*n
подскажите в чем ошибка


procedure Smena(var A,B:matrix; n,m:integer);
var i,j:integer;
begin
for i:=1 to n do
for j:=1 to n do
B[i,j+n]:=A[i,j];
for i:=1 to n do
for j:=n+1 to m do
B[i+n,j]:=A[i,j];
for i:=n+1 to m do
for j:=n+1 to m do
B[i,j-n]:=A[i,j];
for i:=n+1 to m do
for j:=1 to n do
B[i-n,j]:=A[i,j];
end;



Сообщение отредактировано: Mavra -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Mavra, тебе нравится, когда ты разговариваешь с кем-то, тут подходит неизвестно кто, говорит "во, КСТАТИ!" - и начинает совсем про другое? Ты понимаешь, что ты мешаешь разговору в этой теме? нет?
Ознакомься с Правилами Форума (ссылка вверху страницы), пожалуйста.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Цитата(Lapp @ 2.12.2009 13:06) *

Не очень ясно, как ты предполагаешь сделать до 10, если у тебя увеличение в столбце идет только до 5.



то я завтыкал (по заданию у меня 10 , а в примере 5)

Добавлено через 4 мин.
Цитата(-Volvo- @ 2.12.2009 14:27) *

Вообще-то это называется "Подмножество". Алгоритм генерации подмножеств для заданного множества есть у нас в FAQ-е, в разделе "Комбинаторика". Но там генерация происходит не в том порядке, что тебе надо, так что после заполнения массив еще надо будет отсортировать. В принципе - это не должно занять много времени, для 10 чисел всего 210 = 1024 элемента массива.



я просто я не точно обяснил.... просто 1,2,3 и 1,3,2 - ето одинаковы выражения , тоесть суть в том что бы заполнить масив и учесть вот такой нюанс. unsure.gif

Добавлено через 2 мин.
Всем спс, я уже усё понял)

Сообщение отредактировано: Helm -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 3.03.2021 7:05
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name