Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Хажи
-4 / 1 / 1
Регистрация: 09.08.2011
Сообщений: 27
#1

Вывести все сочетание без повторений n по к - Delphi

01.04.2012, 16:25. Просмотров 817. Ответов 0
Метки нет (Все метки)

вывести все сочетание без повторений n по к
например:
n=5; k=2;
1,2 1,3 1,24 1,5
2,3 2,4 2,5
3,4 3,5
4,5
n=4; k=3;
1,2,3 1,2,4 1,3,4 2,3,4

Добавлено через 20 часов 26 минут
ма я сам сделал пока ваш форум думал
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
program Project1;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
function fuct(n,k:Integer):integer;
var
i,s,s1:integer;
begin
s:=1; s1:=1;
for i:=n-k+1 to n do
s:=s*i;
for i:=2 to k do
s1:=s1*i;
fuct:=round(s/s1);
end;
 
label met;
var
count,i1,k,r,n,c,i,j,a:integer;
ck,mk,ik,m:array of integer;
tin,tout:textfile;
begin
//readln(n,k);
n:=24; k:=2;
c:=1; setlength(m,1);
for i:=1 to n div 2 do  // все делители
if n mod i=0 then begin
m[c-1]:=i;
inc(c);
setlength(m,c);
end; a:=0;
 m[c-1]:=n; // само число
 
writeln(c,' ',fuct(c,k));
setlength(ik,k); setlength(mk,k);  setlength(ck,k);
for i:=0 to k-1 do begin
ik[i]:=i;
ck[i]:=c-k+i;
end;
i:=0; j:=k-1; i1:=2; count:=0;
while fuct(c,k)<>count do begin
for i:=0 to k-1 do
write(m[ik[i]],',') ;
 
 
 if ik[j]<ck[j] then begin
 inc(ik[j]);
 end
 else
 begin
 writeln;
met: if (ik[j]>=ck[j]) then begin
 dec(j);
 goto met;
 end;
   inc(ik[j]);
 for i:=j+1 to k-1 do
ik[i]:=ik[i-1]+1;
 j:=k-1;
 end;
count:=count + 1;
end;
 
readln;  readln;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2012, 16:25
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вывести все сочетание без повторений n по к (Delphi):

Вывести все гласные латинские буквы без повторений
Разработать функцию MakeStr(const S:string):string, вывести все ее гласные...

Нужно вывести все значения без повторений и рядом сколько раз это значение повторяется
Дается выборка с отсортироваными по порядку значениями. Нужно вывести все...

Массив без повторений
Доброго времени суток! Как реализовать генерацию случайного массива из 4...

Замените в слове Х все буквы "а" на сочетание "ку", а сочетание "ку" на букву "б"
Написать программу, заменяющую в слове Х все буквы &quot;а&quot; на сочетание &quot;ку&quot;, а...

Случайные числа без повторений
Ребятушки, подскажите пожалуйста. Есть i1:=RandomRange(1,100);...

Как преобразовать items, которые есть в listbox, в одно сочетание без пробелов?
Всем доброго времени суток ! У меня вопрос. Как преобразовать items которые...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.04.2012, 16:25
Привет! Вот еще темы с решениями:

Заполнение массива случайными числами без повторений
Как сгенерировать массив от 1 до 15, чтобы ни одно число в массиве не...

Вывести на экран все числа, на которые заданное число делится без остатка
В поиску выдало только эту тему...

Вывести все трехзначные числа которые делятся без остатка на каждую из своих цифр
вывести все трехзначные числа которые делятся без остатка на каждую из своих...

Процедура: удалить из строки х1 все подстроки, совпадающие с х2, если таких подстрок нет, то вывести х1 без изменения
с помощью процедуры решить следующую задачу. даны 2 строки х1 и х2. удалить из...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru