Есть у кого контакты ИТМО, Кафедра программной инженерии |
Здравствуйте, гость ( Вход | Регистрация )
Есть у кого контакты ИТМО, Кафедра программной инженерии |
12.2.2018, 11:10
Сообщение
#21
|
|
Живет здесь |
Про рекурсию я ей сам объяснил опастность большой глубины вызовов, зацикливания и переполнения стека в итоге... Но для обхода конечных древовидных однообразных структур вполне себе вариант, и не моя это инициатива, а задание по зачитанному курсу... Я ваще немного в удивлении, насколько быстро им дают такой материал. Следующие задания уже на работу с памятью и указателями... Позвонили в деканат, ходить ессно и выяснять не надо, будет только хуже, таких как она много)). А надо, как а понимаю, проявлять инициативу, ловить момент, подходить, спрашивать помощи у него в решениях... а не ждать по последнего и сдавать готовое (как у всех). Он должен видить ее самостоятельность в работе. Что значит быстро? У нас рекурсия была в 9 или 10 классе. равно как и указатели и списки. |
|
|
12.2.2018, 11:40
Сообщение
#22
|
|
Живу дома |
А у нее/вас есть понимание почему эта функция разбивается на эту сумму? Я б в комментарии написал, что 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 определяет текущее значение суммы слагаемых, которые идут после первого слагаемого. Данным вызовом мы разложим это значение, определив этим количество разложений с одинаковым первым слагаемым. Но уверен - нужный ответ проще. Ну например = Это число, которое мы будем раскладывать на данном вызове рекурсии...)) |
|
|
12.2.2018, 11:49
Сообщение
#23
|
|
Живет здесь |
Эти два вызова рекурсивных -- для подсчета разложений включающих max и не включающих max (поэтому кстати max - неудачное имя). Это непересекающиеся множества, покрывающие требуемое. Пока этого не описано в комментах - будет непонятно...
|
|
|
12.2.2018, 11:58
Сообщение
#24
|
|
Живет здесь |
Взрыв мозга (у тебя или дочки) означает отсутствие понимания. Надо переспрашивать и думать.
Программирование в конце концов - умение формально объяснить железке |
|
|
12.2.2018, 12:01
Сообщение
#25
|
|
Живет здесь |
да может он просто ждёт, когда ему скажут, что "n-max" – это параметр функции, а вы тут истерику устроили :)
|
|
|
12.2.2018, 12:15
Сообщение
#26
|
|
Прохфессиональный чайник |
|
|
|
12.2.2018, 12:36
Сообщение
#27
|
|
Живу дома |
Это первое, что я ей предложил сказать, или как минимум вложить в ответ. Она еще и упертая, но мы-то знаем, что каждый учится на своих ошибках...
|
|
|
12.2.2018, 12:49
Сообщение
#28
|
|
Прохфессиональный чайник |
Это первое, что я ей предложил сказать, или как минимум вложить в ответ. Она еще и упертая, но мы-то знаем, что каждый учится на своих ошибках... А это устный экзамен, или письменный? На устном обычно не обязательно давать один ответ, можно дать несколько и пояснить о чем речь. Типа "н-макс это параметр функции, который...", как там "рыба покрыта чешуей, но еслиб у рыбы была шерсть, то там бы водились блохи..." Обычно если ты владеешь темой и понимаешь о чем говоришь, то терминологические непонимания можно разрулить рассказав больше чем спрашивают... |
|
|
12.2.2018, 13:16
Сообщение
#29
|
|
Легенда |
Ну, мне тоже кажецца, что препод всегда делит студентов на тех, кто понимает и всех остальных. И когда не видит этого понимания, то начинаюцца "придирки"
|
|
|
12.2.2018, 13:22
Сообщение
#30
|
|
Прохфессиональный чайник |
|
|
|
12.2.2018, 13:28
Сообщение
#31
|
|
Живет здесь |
Но уверен - нужный ответ проще. Ну например = Это число, которое мы будем раскладывать на данном вызове рекурсии...)) мне кажется у тебя правильно написано. Я бы сказал "новое число, для которого ищется разложение". а есть список ответов, которые уже не устроили препода? |
|
|
12.2.2018, 13:46
Сообщение
#32
|
|
Живу дома |
Эти два вызова рекурсивных -- для подсчета разложений включающих 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 разложений. |
|
|
12.2.2018, 13:58
Сообщение
#33
|
|
Живу дома |
Цитата курс-то не первый случаем? сессия не первая? Может просто не умеет сдавать экзамены? Именно, + не желание действовать на опережение - не запускать, задавать вопросы, не бояться... Цитата а есть список ответов, которые уже не устроили препода? От нее это звучит сумбурно. Буду требовать вдальнейшем включать диктофон, это многое может прояснить... Буду сам задовать такой вопрос и добиваться от нее разумных ответов... Цитата Ну, мне тоже кажецца, что препод всегда делит студентов на тех, кто понимает и всех остальных. И когда не видит этого понимания, то начинаюцца "придирки" Однозначьно она в категории всех остальных. Думаю пусть удалит все комментарии из программы, кроме базовых и отвечает с головы. |
|
|
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, но мы их выкинули вычли 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
|
|
Прохфессиональный чайник |
ДЮ, задача написать свой алгоритм и задача разобраться в чужом - это разные задачи. Вторая сложнее как правило.
|
|
|
12.2.2018, 14:34
Сообщение
#36
|
|
Живет здесь |
Я знаю, поэтому и не читаю исходник.
Но алгоритм должен быть именно такой по всем признакам |
|
|
12.2.2018, 14:34
Сообщение
#37
|
|
Прохфессиональный чайник |
Думаю пусть удалит все комментарии из программы, кроме базовых и отвечает с головы. думаю, что начинать надо с того, что сформулировать что дано и что спрашивают. Если что спрашивают не понятно, то есть два варианта действий - первый это уточнить вопрос. Если это не проходит, то надо написать сочинение на тему что ты думаешь о предметах в "что спрашивают". В данном случае рассказать все что ты знаешь о н-максе и его участии в алгоритме. При этом нужно использовать правильные слова. и не путать функции с процедурами и т.п. Вот скажем в тех многоцыфрах, что дю нарисовал обвести н-макс кружочком Можно провести и работу с аналогиями, то есть узнать какие были еще задачи и что считалось ответами, а что не считалось ответами. Проанализировать. |
|
|
12.2.2018, 15:19
Сообщение
#38
|
|
••• |
|
|
|
12.2.2018, 15:27
Сообщение
#39
|
|
Живет здесь |
Это кстати приличный алгоритм в этом плане, я б если б попросили студенческий алгоритм предложить, сказал бы тупо конструктивно эти суммы расписывать, вот тут бы мало не показалось и на много меньшем n
Но теперь день прошел не зря, знаю лучше подход |
|
|
12.2.2018, 15:32
Сообщение
#40
|
|
••• |
Это кстати приличный алгоритм в этом плане, я б если б попросили студенческий алгоритм предложить, сказал бы тупо конструктивно эти суммы расписывать, вот тут бы мало не показалось и на много меньшем n технологически грамотно давать точный ответ до приемлемого n и приблизительный при превышении. сообщать об этом, конечно же. |
|
|
Текстовая версия | Сейчас: 18.4.2024, 15:20 |