Динамическое программирование

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Sasha_karasov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 436
Зарегистрирован: 03.03.2005 (Чт) 19:38
Откуда: ua.dp

Динамическое программирование

Сообщение Sasha_karasov » 03.03.2005 (Чт) 19:52

У меня две задачи.
:?: :?: :?: Первая(1)
Дана последовательность N
Вывести все возможные перестановки.
Вторая (2)
Дана последовательность N
Вывести все суммы элементов.
Например
N=1,2,3,43,3
1+2=3
1+3=4
1+43=44
потом
2+3=5
……
2+3+43+3
И так далее
Объясните алгоритм пожалуйста.


zHackLeX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 23.10.2003 (Чт) 21:08

Сообщение zHackLeX » 04.03.2005 (Пт) 12:19

Первая задача - на комбинаторику.
N чисел можно расположить N!
способами.
2 числа - двумя
3 числа - 1*2*3 шестью способами
4 числа - 1*2*3*4 24 способа
Факториал числа N - и есть ответ

Вторая задача. Подразумевая, что I<j<N, а R() - искомый массив,

Код: Выделить всё
Open "Output.txt" for Output as #1
    For i = 1 to N
        For j = i +1 to N
            Print #1, Str$(R(i) + R(j))
        Next j
    Next i
Close #1


Думаю, комментарии не нужны.
ЗЫ. Тут вообще-то больше практическое программирование изучают. а не теорию...
За теорией тебе бы на алголист сходить! :)
There is no knowledge that is not power...

X,C,A,B,C,Z,X,A,B,C,Z....
Многие ли помнят? :)

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 04.03.2005 (Пт) 12:25

Ему не нужно число последовательностей, ему нужны сами последовательности.
Lasciate ogni speranza, voi ch'entrate.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 04.03.2005 (Пт) 12:31

Иногда, все-таки, перед тем, как отвечать, нужно прочитать вопрос :wink:

По поводу первой задачки:
http://bryansk.fio.ru/vipusk/00007/dremovanv/pril2.htm

(сама программа там на Паскале, но алгоритм описан русским языком :) )

По поводу второй - поищу, когда будет время, если другие люди до этого не скажут что-нить.

ЗЫ А вообще - динамическое программирование, насколько я знаю, это совсем не то. Во всяком случае, я этот термин встречал в науке, которая не так уж много отношения имеет к программированию вообще.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 04.03.2005 (Пт) 12:42

uhm, подтверждаю, что "динамическое программирование" - именнно это. Хотя вполне может быть, что и ещё что-то так же называется.
Изображение

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 04.03.2005 (Пт) 12:49

Да? Интересно... Не понимаю, почему оно "динамическое" :( .

Я встречал "динамическое программирование" в курсе оптимизационных задач, когда оптимальное решение задачи складывается из оптимального решения подзадач.

Каюсь, был неправ :)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 153

    TopList