Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2010, 09:12   #1
любаша
Пользователь
 
Регистрация: 26.10.2008
Сообщений: 26
По умолчанию задача о сочетаниях

ребята,привет)))вообщем нужно найти сочетания(без повторений) и их количество для произвольного множества.нашла хороший пример,НО не могу понять почему сочетания выводятся в порядке убывания???(т.е. сначала 33,32..02,01) и еще этот пример на сочетания с повторениями,как убрать из примера повторения????
может кто то разберется!!заранее спасибо
вот сама прога


const
alphabet : string[10] = '0123456789';
var
b : array [1..100] of byte;
N,i,j,k,M,N1 : byte;
z:longint;
Procedure SwapB(i,k:byte);
var x : byte;
begin
x:=B[i]; B[i]:=B[k]; B[k]:=x;
end;
Procedure WriteB;
var i,j : byte;
begin
Inc(Z); Write (Z:3,' : ');
j:=1;
for i:=1 to N do
if b[i]=0
then Inc(j)
else write(alphabet[j]);
writeln;
readln;
end;
begin
readln(N1,M); N:=N1-1+M;
for i:=1 to n1-1 do b[i]:=0;
for i:=n1 to n1+m-1 do b[i]:=1;
WriteB;
while (true) do
begin
i:=N;
while (i>0) and (B[i]>=B[i+1]) do i:=i-1;
if i=0 then exit;
for j:=i+1 to N do
if (B[j]>B[i]) then K:=j;
SwapB(i,k);
for j:=i+1 to (i+ ((N+1-i) div 2)) do
SwapB(j,N+i+1-j);
WriteB;
end;
end.
любаша вне форума Ответить с цитированием
Старый 30.10.2010, 13:18   #2
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

чот я не оч задачу понял, что нужно выдать вам на выходе

есть массив с элементами произвольными, так? например, {0 1 2 3 4 5}
нужно вывести все сочетания цифр без повторов этих сочетаний, т.е. 23 и 32 - это одно сочетание и, соответственно, 32 уже не выводится, правильно?

а каков размер сочетаний? 2 символа, либо указывается?

если, я все правильно понял, то здесь нужно просто идти от начала массива и перебирать все символы, так дойдете до конца массива, перебрав все сочетания без повторов

могу выполнить это все за вознаграждение на любом из языков, указанных ниже
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача Aman Паскаль, Turbo Pascal, PascalABC.NET 1 29.09.2010 15:37
Задача Александр123456 Фриланс 6 16.09.2010 13:37
задача hrusha2006 Помощь студентам 4 14.09.2010 21:54
Задача в C# Оксанка Помощь студентам 1 02.03.2009 23:51