![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]()
Сообщение
#1
|
|
![]() Живу дома ![]() |
У дочки сложности в коммуникации с преподавателем, понятно, что сама запустила ... но при сдаче программы, не может ответить на один и тот-же вопрос, причем получает ответ "нет" на раз! с предложением подумать и прийти через неделю (а вариантов ответа много, не понятно, что он хочет услышать). Сама боится уже подходить к нему. У ребенка депрессия, два дня не ест.
Сам уже с ней сидел, все понимает... Всегда училась самостоятельно, а тут тупик (хвост один!). От нашей помощи дочка отказывается... |
|
|
![]() |
![]()
Сообщение
#21
|
|
![]() Живет здесь ![]() |
Про рекурсию я ей сам объяснил опастность большой глубины вызовов, зацикливания и переполнения стека в итоге... Но для обхода конечных древовидных однообразных структур вполне себе вариант, и не моя это инициатива, а задание по зачитанному курсу... Я ваще немного в удивлении, насколько быстро им дают такой материал. Следующие задания уже на работу с памятью и указателями... Позвонили в деканат, ходить ессно и выяснять не надо, будет только хуже, таких как она много)). А надо, как а понимаю, проявлять инициативу, ловить момент, подходить, спрашивать помощи у него в решениях... а не ждать по последнего и сдавать готовое (как у всех). Он должен видить ее самостоятельность в работе. Что значит быстро? У нас рекурсия была в 9 или 10 классе. равно как и указатели и списки. |
|
|
![]()
Сообщение
#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 определяет текущее значение суммы слагаемых, которые идут после первого слагаемого. Данным вызовом мы разложим это значение, определив этим количество разложений с одинаковым первым слагаемым. ![]() Но уверен - нужный ответ проще. Ну например = Это число, которое мы будем раскладывать на данном вызове рекурсии...)) |
|
|
![]()
Сообщение
#23
|
|
![]() Живет здесь ![]() |
Эти два вызова рекурсивных -- для подсчета разложений включающих max и не включающих max (поэтому кстати max - неудачное имя). Это непересекающиеся множества, покрывающие требуемое. Пока этого не описано в комментах - будет непонятно...
|
|
|
![]()
Сообщение
#24
|
|
![]() Живет здесь ![]() |
Взрыв мозга (у тебя или дочки) означает отсутствие понимания. Надо переспрашивать и думать.
Программирование в конце концов - умение формально объяснить железке ![]() |
|
|
![]()
Сообщение
#25
|
|
![]() Живет здесь ![]() |
да может он просто ждёт, когда ему скажут, что "n-max" – это параметр функции, а вы тут истерику устроили :)
|
|
|
![]()
Сообщение
#26
|
|
Прохфессиональный чайник ![]() |
|
|
|
![]()
Сообщение
#27
|
|
![]() Живу дома ![]() |
Это первое, что я ей предложил сказать, или как минимум вложить в ответ. Она еще и упертая, но мы-то знаем, что каждый учится на своих ошибках...
|
|
|
![]()
Сообщение
#28
|
|
Прохфессиональный чайник ![]() |
Это первое, что я ей предложил сказать, или как минимум вложить в ответ. Она еще и упертая, но мы-то знаем, что каждый учится на своих ошибках... А это устный экзамен, или письменный? На устном обычно не обязательно давать один ответ, можно дать несколько и пояснить о чем речь. Типа "н-макс это параметр функции, который...", как там "рыба покрыта чешуей, но еслиб у рыбы была шерсть, то там бы водились блохи..." Обычно если ты владеешь темой и понимаешь о чем говоришь, то терминологические непонимания можно разрулить рассказав больше чем спрашивают... |
|
|
![]()
Сообщение
#29
|
|
![]() Легенда ![]() |
Ну, мне тоже кажецца, что препод всегда делит студентов на тех, кто понимает и всех остальных. И когда не видит этого понимания, то начинаюцца "придирки"
|
|
|
![]()
Сообщение
#30
|
|
Прохфессиональный чайник ![]() |
|
|
|
![]()
Сообщение
#31
|
|
![]() Живет здесь ![]() |
Но уверен - нужный ответ проще. Ну например = Это число, которое мы будем раскладывать на данном вызове рекурсии...)) мне кажется у тебя правильно написано. Я бы сказал "новое число, для которого ищется разложение". а есть список ответов, которые уже не устроили препода? |
|
|
![]()
Сообщение
#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 разложений. |
|
|
![]()
Сообщение
#33
|
|
![]() Живу дома ![]() |
Цитата курс-то не первый случаем? сессия не первая? Может просто не умеет сдавать экзамены? Именно, + не желание действовать на опережение - не запускать, задавать вопросы, не бояться... Цитата а есть список ответов, которые уже не устроили препода? От нее это звучит сумбурно. Буду требовать вдальнейшем включать диктофон, это многое может прояснить... Буду сам задовать такой вопрос и добиваться от нее разумных ответов... Цитата Ну, мне тоже кажецца, что препод всегда делит студентов на тех, кто понимает и всех остальных. И когда не видит этого понимания, то начинаюцца "придирки" Однозначьно она в категории всех остальных. Думаю пусть удалит все комментарии из программы, кроме базовых и отвечает с головы. |
|
|
![]()
Сообщение
#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, но мы их выкинули ![]() 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 Которые мы разбили на два непересекающихся подмножества см. выше. Я ж говорю, хреновые комменты, с ними нетривиально понять что нить. |
|
|
![]()
Сообщение
#35
|
|
Прохфессиональный чайник ![]() |
ДЮ, задача написать свой алгоритм и задача разобраться в чужом - это разные задачи. Вторая сложнее как правило.
|
|
|
![]()
Сообщение
#36
|
|
![]() Живет здесь ![]() |
Я знаю, поэтому и не читаю исходник.
Но алгоритм должен быть именно такой по всем признакам ![]() |
|
|
![]()
Сообщение
#37
|
|
Прохфессиональный чайник ![]() |
Думаю пусть удалит все комментарии из программы, кроме базовых и отвечает с головы. думаю, что начинать надо с того, что сформулировать что дано и что спрашивают. Если что спрашивают не понятно, то есть два варианта действий - первый это уточнить вопрос. Если это не проходит, то надо написать сочинение на тему что ты думаешь о предметах в "что спрашивают". В данном случае рассказать все что ты знаешь о н-максе и его участии в алгоритме. При этом нужно использовать правильные слова. и не путать функции с процедурами и т.п. Вот скажем в тех многоцыфрах, что дю нарисовал обвести н-макс кружочком ![]() Можно провести и работу с аналогиями, то есть узнать какие были еще задачи и что считалось ответами, а что не считалось ответами. Проанализировать. |
|
|
![]()
Сообщение
#38
|
|
![]() ••• ![]() |
|
|
|
![]()
Сообщение
#39
|
|
![]() Живет здесь ![]() |
Это кстати приличный алгоритм в этом плане, я б если б попросили студенческий алгоритм предложить, сказал бы тупо конструктивно эти суммы расписывать, вот тут бы мало не показалось и на много меньшем n
![]() Но теперь день прошел не зря, знаю лучше подход ![]() |
|
|
![]()
Сообщение
#40
|
|
![]() ••• ![]() |
Это кстати приличный алгоритм в этом плане, я б если б попросили студенческий алгоритм предложить, сказал бы тупо конструктивно эти суммы расписывать, вот тут бы мало не показалось и на много меньшем n ![]() технологически грамотно давать точный ответ до приемлемого n и приблизительный при превышении. сообщать об этом, конечно же. |
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 21.6.2024, 23:50 |