Здравствуйте, гость ( Вход | Регистрация )

10 страниц V  < 1 2 3 4 > »   
Ответить в данную темуНачать новую тему
> Есть у кого контакты ИТМО, Кафедра программной инженерии
 Gustilev
сообщение 12.2.2018, 11:10
Сообщение #21


Живет здесь
Цитата(DimOs @ 12.2.2018, 10:48) *
Про рекурсию я ей сам объяснил опастность большой глубины вызовов, зацикливания и переполнения стека в итоге... Но для обхода конечных древовидных однообразных структур вполне себе вариант, и не моя это инициатива, а задание по зачитанному курсу...

Я ваще немного в удивлении, насколько быстро им дают такой материал. Следующие задания уже на работу с памятью и указателями...

Позвонили в деканат, ходить ессно и выяснять не надо, будет только хуже, таких как она много)). А надо, как а понимаю, проявлять инициативу, ловить момент, подходить, спрашивать помощи у него в решениях... а не ждать по последнего и сдавать готовое (как у всех). Он должен видить ее самостоятельность в работе.

Что значит быстро? У нас рекурсия была в 9 или 10 классе. равно как и указатели и списки.
Перейти в начало страницы
 
+Цитировать сообщение
 DimOs
сообщение 12.2.2018, 11:40
Сообщение #22


Живу дома
Цитата(DU @ 11.2.2018, 23:57) *
А у нее/вас есть понимание почему эта функция разбивается на эту сумму? smile.gif

Я б в комментарии написал, что r(n-max, max) -- количество разложений, в которые входит как минимум одно слагаемое равное max (соотв-но из всех этих разложений можно вычесть max, после этого их число не изменится, все суммы станут = n-max, т.е. имеем r(n-max, max))

r(n, max-1) //разложит число N до единицы, где первое слагаемое max (но есть разложения с одинаковым max, в качестве первого слагаемого), поэтому
+ r(n-max, max) //добавим их разложив сумму остальных слагаемых (после первого слагаемого (мах))

В любом из объяснений - попытка выразить это словами, приводит к взрыву мозга)). Но должно быть верным.

В моем понимании (n-max) это:

В каждом выхове фунции разница параметров n-max определяет текущее значение суммы слагаемых, которые идут после первого слагаемого. Данным вызовом мы разложим это значение, определив этим количество разложений с одинаковым первым слагаемым. blink.gif

Но уверен - нужный ответ проще. Ну например = Это число, которое мы будем раскладывать на данном вызове рекурсии...))



Перейти в начало страницы
 
+Цитировать сообщение
 DU
сообщение 12.2.2018, 11:49
Сообщение #23


Живет здесь
Эти два вызова рекурсивных -- для подсчета разложений включающих max и не включающих max (поэтому кстати max - неудачное имя). Это непересекающиеся множества, покрывающие требуемое. Пока этого не описано в комментах - будет непонятно...
Перейти в начало страницы
 
+Цитировать сообщение
 DU
сообщение 12.2.2018, 11:58
Сообщение #24


Живет здесь
Взрыв мозга (у тебя или дочки) означает отсутствие понимания. Надо переспрашивать и думать.

Программирование в конце концов - умение формально объяснить железке smile.gif
Перейти в начало страницы
 
+Цитировать сообщение
 Благочестивая Ма...
сообщение 12.2.2018, 12:01
Сообщение #25


Живет здесь
да может он просто ждёт, когда ему скажут, что "n-max" – это параметр функции, а вы тут истерику устроили :)
Перейти в начало страницы
 
+Цитировать сообщение
 АнтонА
сообщение 12.2.2018, 12:15
Сообщение #26


Прохфессиональный чайник
Цитата(Благочестивая Марта @ 12.2.2018, 12:01) *
да может он просто ждёт, когда ему скажут, что "n-max" – это параметр функции, а вы тут истерику устроили smile.gif

обычно нечто подобное и вызывает взрыв мозга smile.gif и сопровождается подобной реакцией преподавателя smile.gif
Перейти в начало страницы
 
+Цитировать сообщение
 DimOs
сообщение 12.2.2018, 12:36
Сообщение #27


Живу дома
Это первое, что я ей предложил сказать, или как минимум вложить в ответ. Она еще и упертая, но мы-то знаем, что каждый учится на своих ошибках...
Перейти в начало страницы
 
+Цитировать сообщение
 АнтонА
сообщение 12.2.2018, 12:49
Сообщение #28


Прохфессиональный чайник
Цитата(DimOs @ 12.2.2018, 12:36) *
Это первое, что я ей предложил сказать, или как минимум вложить в ответ. Она еще и упертая, но мы-то знаем, что каждый учится на своих ошибках...

А это устный экзамен, или письменный? На устном обычно не обязательно давать один ответ, можно дать несколько и пояснить о чем речь. Типа "н-макс это параметр функции, который...", как там "рыба покрыта чешуей, но еслиб у рыбы была шерсть, то там бы водились блохи..." Обычно если ты владеешь темой и понимаешь о чем говоришь, то терминологические непонимания можно разрулить рассказав больше чем спрашивают...
Перейти в начало страницы
 
+Цитировать сообщение
 Kateyka
сообщение 12.2.2018, 13:16
Сообщение #29


Легенда
Ну, мне тоже кажецца, что препод всегда делит студентов на тех, кто понимает и всех остальных. И когда не видит этого понимания, то начинаюцца "придирки"
Перейти в начало страницы
 
+Цитировать сообщение
 АнтонА
сообщение 12.2.2018, 13:22
Сообщение #30


Прохфессиональный чайник
Цитата(DimOs @ 12.2.2018, 12:36) *
Это первое, что я ей предложил сказать, или как минимум вложить в ответ. Она еще и упертая, но мы-то знаем, что каждый учится на своих ошибках...

курс-то не первый случаем? сессия не первая? Может просто не умеет сдавать экзамены? smile.gif
Перейти в начало страницы
 
+Цитировать сообщение
 Gustilev
сообщение 12.2.2018, 13:28
Сообщение #31


Живет здесь
Цитата(DimOs @ 12.2.2018, 11:40) *
Но уверен - нужный ответ проще. Ну например = Это число, которое мы будем раскладывать на данном вызове рекурсии...))

мне кажется у тебя правильно написано. Я бы сказал "новое число, для которого ищется разложение".
а есть список ответов, которые уже не устроили препода?
Перейти в начало страницы
 
+Цитировать сообщение
 DimOs
сообщение 12.2.2018, 13:46
Сообщение #32


Живу дома
Цитата(DU @ 12.2.2018, 11:49) *
Эти два вызова рекурсивных -- для подсчета разложений включающих max и не включающих max (поэтому кстати max - неудачное имя). Это непересекающиеся множества, покрывающие требуемое. Пока этого не описано в комментах - будет непонятно...


6=6
6=5+1
...
6=3+(3)
...
6=(2)+(2+2) // Здесь 2=max, а (2+2)=(n-max) но max включает в качестве слагаемого. Надо разложить 4 -> r(4,2) для подсчета следующих двух:
6=(2)+(2+1+1)
6=(2)+(1+1+1+1)
...
6=1+1+...+1

Дима, где у нас с тобой не стыковка в интерпритации теории, меня смущает подчеркнутая фраза!, которая звучит у тебя и в интернете -
Цитата
для подсчета разложений включающих max и не включающих max
..?

Если пройтись в дебагере, то дойдя до

return razlozheniye(n, max - 1)
+ razlozheniye(n - max, max);

мы будем вызывать рекурсивно сперва razlozheniye(n, max - 1) пока не дойдем до 1-цы вернем ее +1,
а затем добавим уже razlozheniye(n - max, max) --- (для разложения 6, как в примере - сперва это будет r(4,2)) для мах=2, что в сумме вернет 4;

затем r(6,2) + r(3,3) = 2+1 вернет 4+3;
затем r(6,1) + r(2,4) = 1+2 вернет 7+3;
В итоге return razlozheniye(n, n - 1) + 1 Вернет 10+1

т.е. 11 разложений.
Перейти в начало страницы
 
+Цитировать сообщение
 DimOs
сообщение 12.2.2018, 13:58
Сообщение #33


Живу дома
Цитата
курс-то не первый случаем? сессия не первая? Может просто не умеет сдавать экзамены?


Именно, + не желание действовать на опережение - не запускать, задавать вопросы, не бояться...

Цитата
а есть список ответов, которые уже не устроили препода?

От нее это звучит сумбурно.
Буду требовать вдальнейшем включать диктофон, это многое может прояснить...

Буду сам задовать такой вопрос и добиваться от нее разумных ответов...

Цитата
Ну, мне тоже кажецца, что препод всегда делит студентов на тех, кто понимает и всех остальных. И когда не видит этого понимания, то начинаюцца "придирки"

Однозначьно она в категории всех остальных.

Думаю пусть удалит все комментарии из программы, кроме базовых и отвечает с головы.
Перейти в начало страницы
 
+Цитировать сообщение
 DU
сообщение 12.2.2018, 14:22
Сообщение #34


Живет здесь
Я не читал твой исходник, я формировал свое понимание алгоритма по интернету.

Ты один шаг рекурсии рассмотри, не опускаясь дальше.
Типа, r(6,3)=r(6,2)+r(3,3)
Первое это суммы(не включающие max=3)
1+1+1+1+1+1
1+1+1+1+2
1+1+2+2
2+2+2
Второе (включали б ещё +3 если б первый аргумент был 6, но мы их выкинули smile.gif вычли 3 из каждой суммы и получив разложения для 6-3)
1+1+1
1+2
3

Вообще же для r(6,3) суммы:
1+1+1+1+1+1
1+1+1+1+2
1+1+2+2
2+2+2

1+1+1+3
1+2+3
3+3

Которые мы разбили на два непересекающихся подмножества см. выше.

Я ж говорю, хреновые комменты, с ними нетривиально понять что нить.
Перейти в начало страницы
 
+Цитировать сообщение
 АнтонА
сообщение 12.2.2018, 14:27
Сообщение #35


Прохфессиональный чайник
ДЮ, задача написать свой алгоритм и задача разобраться в чужом - это разные задачи. Вторая сложнее как правило.
Перейти в начало страницы
 
+Цитировать сообщение
 DU
сообщение 12.2.2018, 14:34
Сообщение #36


Живет здесь
Я знаю, поэтому и не читаю исходник.
Но алгоритм должен быть именно такой по всем признакам smile.gif
Перейти в начало страницы
 
+Цитировать сообщение
 АнтонА
сообщение 12.2.2018, 14:34
Сообщение #37


Прохфессиональный чайник
Цитата(DimOs @ 12.2.2018, 13:58) *
Думаю пусть удалит все комментарии из программы, кроме базовых и отвечает с головы.

думаю, что начинать надо с того, что сформулировать что дано и что спрашивают. Если что спрашивают не понятно, то есть два варианта действий - первый это уточнить вопрос. Если это не проходит, то надо написать сочинение на тему что ты думаешь о предметах в "что спрашивают". В данном случае рассказать все что ты знаешь о н-максе и его участии в алгоритме. При этом нужно использовать правильные слова. и не путать функции с процедурами и т.п.

Вот скажем в тех многоцыфрах, что дю нарисовал обвести н-макс кружочком smile.gif

Можно провести и работу с аналогиями, то есть узнать какие были еще задачи и что считалось ответами, а что не считалось ответами. Проанализировать.
Перейти в начало страницы
 
+Цитировать сообщение
 Yar
сообщение 12.2.2018, 15:19
Сообщение #38


•••
Цитата(DimOs @ 12.2.2018, 10:48) *
Но для обхода конечных древовидных однообразных структур вполне себе вариант

оно конечно вполне себе, но запусти ее на n=1000, удивишься ))
Перейти в начало страницы
 
+Цитировать сообщение
 DU
сообщение 12.2.2018, 15:27
Сообщение #39


Живет здесь
Это кстати приличный алгоритм в этом плане, я б если б попросили студенческий алгоритм предложить, сказал бы тупо конструктивно эти суммы расписывать, вот тут бы мало не показалось и на много меньшем n smile.gif

Но теперь день прошел не зря, знаю лучше подход smile.gif
Перейти в начало страницы
 
+Цитировать сообщение
 Yar
сообщение 12.2.2018, 15:32
Сообщение #40


•••
Цитата(DU @ 12.2.2018, 15:27) *
Это кстати приличный алгоритм в этом плане, я б если б попросили студенческий алгоритм предложить, сказал бы тупо конструктивно эти суммы расписывать, вот тут бы мало не показалось и на много меньшем n smile.gif

технологически грамотно давать точный ответ до приемлемого n и приблизительный при превышении.
сообщать об этом, конечно же.
Перейти в начало страницы
 
+Цитировать сообщение

10 страниц V  < 1 2 3 4 > » 
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 16.4.2024, 15:29