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

> Разбиение числа на слагаемые, Надо разбить число N на суму из K слагаемых.
сообщение
Сообщение #1


Бывалый
***

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

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


Надо методом перебора. Я сделал, только они повторяются:
1 3 5 - 5 3 1
Может у вас есть алгоритм для этой задачи?
Я думал сохранить результаты в массиве, т.е если числа вектора не повторяются с теми что из массива то добавляем в массив, но это не эфективно, думаю есть более простой метод.
Спасибо.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Цитата
Может у вас есть алгоритм для этой задачи?
Алгоритм ты озвучил сам: перебор.

Есть реализация: числа, дающие в сумме заданное число
Повторений не наблюдается...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


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

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

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


Цитата(volvo @ 18.04.2011 16:26) *
Алгоритм ты озвучил сам: перебор.

Есть реализация: числа, дающие в сумме заданное число
Повторений не наблюдается...
volvo, а почему ты счел возможным совершенно проигнорировать мой пост (Разбиение числа на слагаемые) и даже не извиниться?.. blink.gif Мне кажется, это не принято.

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

-1 norespect.gif

Добавлено через 7 мин.
Цитата(volvo @ 18.04.2011 16:26) *
Алгоритм ты озвучил сам: перебор.
Перебор - это класс алгоритмов, а не алгоритм.

Вот мое модифицированное решение:
const
m=1000;
var
a: array[1..m]of integer;
k,n,q: integer;

procedure Split(j,n: integer);
var
i: integer;
begin
if (n=0)and(k=q) then begin
for i:=1 to k do Write(a[i]:4);
WriteLn
end
else for i:=j to n do begin
Inc(k);
a[k]:=i;
Split(i+1,n-i);
Dec(k)
end
end;

begin
Write('n = ');
ReadLn(n);
Write('q = ');
ReadLn(q);
k:=0;
Split(1,n);
ReadLn
end.


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

Сообщений в этой теме
DarkWishmaster   Разбиение числа на слагаемые   18.04.2011 2:14
Lapp   Надо методом перебора. Я сделал, только они повтор…   18.04.2011 9:42
volvo   Алгоритм ты озвучил сам: перебор. Есть реализаци…   18.04.2011 19:26
Lapp   Алгоритм ты озвучил сам: перебор. Есть реализаци…   19.04.2011 8:11
DarkWishmaster   Забыл сказать что все числа должны быть разными (т…   18.04.2011 20:38
volvo   Покажи то, что ты придумал без рекурсии...   18.04.2011 20:48
DarkWishmaster   Покажи то, что ты придумал без рекурсии... щяс …   18.04.2011 21:20
volvo   Заодно попробуй вот это (набирал прямо здесь, так …   18.04.2011 21:25
DarkWishmaster   Спасибо, volvo, только что закончил, вот без рекур…   18.04.2011 21:46
volvo   Я не игнорировал пост. Зашел, посмотрел. Кстати, н…   19.04.2011 14:46
Lapp   Я не игнорировал пост. Зашел, посмотрел. Кстати, н…   19.04.2011 15:50
Lapp   Тема разделена, остаток перенесен сюда: О недавних…   22.04.2011 8:50
ta bort gäddhä   My family all the time say that I am killing my ti…   29.09.2021 10:28


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

 





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