Помощь - Поиск - Пользователи - Календарь
Полная версия: Рекурсия
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
toxa
Помогите решить задачу а то я чё то торможу :molitva:
Дан одномерный массив (например из 10 чисел). Эти числа надо разбить на группы (например по 5 ) так, чтобы не было одинаковых чисел (например 5 6 7 1 4 входили, а 6 1 4 5 7, 1 4 5 7 6, и т д не входили) количество таких групп я подсчитал по формуле (в данном примере их 252), а вот как их вывести?
klem4
не очень ясно условие, у тебя сказано массив из 10 элементов, в реальности я вижу 3 массива по 5 элементов, причем во всех одни и теже числа, возможно надо из массива (10 чисел) составить максимальное кол-во "разных пятерок" ?
Дож
А причем тут рекурсия??? Нет такие условия не подойдут :no: , пиши поподробнее... :yes:
toxa
Klem4 ты прав только мне надо массив не из 10 чисел, а из N ( это я просто пример привёл)
volvo
Цитата(toxa @ 21.05.05 21:33)
Дан одномерный массив (например из 10 чисел). Эти числа надо разбить на группы (например по 5 ) так, чтобы не было одинаковых чисел (например  5 6 7 1 4 входили, а 6 1 4 5 7,    1 4 5 7 6, и т д не входили)

Формулу приведи, которая при ТАКИХ входных данных выдает тебе ответ...

Вот тебе переформулированный и упрощенный вопрос:
Дан массив из 4-х элементов: <2, 5, 7, 9> Нужно разбить его на группы по 3 (никаких "например", заметь...) Приведи результат, который ты хочешь получить после отработки программы...
toxa
2 5 7
5 7 9
2 7 9
2 5 9
вот на такие группы надо разбить. Формула 4!/(4-3)!*3!=4
volvo
Вот так:
const
n = 4; { количество элементов в массиве }
var
i, j, k: integer;

const
data:array[1 .. n] of integer =
(2, 5, 7, 9); { это сам исходный массив }
var
a: array[0 .. pred(n)] of integer; { дополнительный массив }

Procedure use;
var
i : integer;
begin
writeln;
for i:=1 to k do
write(data[ a[i] ]:3)
end;

begin
k := 3; { группы по К элементов }
for i:=0 to k do a[i]:=i;
repeat
use;
i:=k;
while a[i]=n-k+i do dec(i);
inc(a[i]);
for j:=i+1 to k do a[j]:=a[j-1]+1;
until i=0;
end.

Только рекурсия здесь на самом-то деле не нужна... :no:
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.