Форум » Теория игр » [C3] Решение через дерево » Ответить

[C3] Решение через дерево

Поляков: Вопрос:[quote]Здравствуйте! Есть вопрос по заданию С3: "У исполнителя Увеличитель две команды,которым присвоены номера: 1. прибавь 1; 2. умножь на 4. Сколько есть программ,которые число 1 преобразуют в число 32? Ответ обоснуйте. " Так вот, решаю это задание всегда "деревом" возможных решений,получается быстро и наглядно. Но на пробном ЕГЭ в школе учительница поставила 0 баллов и сказала что это неправильно, и, ссылаясь на правильное решение "Таблицей" с Вашего сайта, закончила разговор...=( Прошу рассудить, и сказать, имеет ли право на жизнь решение "деревом" задания С3...[/quote]В ответ на ваш вопрос приведу выдержку из критериев оценки из опубликованного демо-варианта:[quote]"В частности, оценка в 2 балла выставляется в случае, если просто перечислены все правильные программы и не доказано отсутствие других программ, кроме приведенных."[/quote]Так что ваше решение (если, конечно, получен правильный ответ) попадает целиком под этот пункт, то есть за решение с помощью дерева (перечислением) должны поставить 2 балла. Ответ М.А. Ройтберга:[quote]Здравствуй, ….! Мне проще обращаться на «ты», если что – извини(те) ). Начну с конца. Никогда нельзя быть уверенным, что известны все правильные решения (в смысле – все рассуждения, приводящие к правильному решению). Вот правильный ответ может быть известен и может быть доказано, что других ответов нет. Таким образом, наличие определенного решения (например, «Таблицей»), само по себе не означает, что какое-то другое рассуждение (например, «деревом возможных решений» ) неправильное. Но является ли решение правильным, нельзя узнать, не увидев самого решения. Если оно приводит к неправильному ответу, - значит, точно неправильное. Но даже правильный ответ не гарантирует правильности решения. Более того. Может быть, решение (которое имелось в виду) было правильным, но при записи не были разобраны какие-то варианты. Построение дерева возможностей как раз часто и приводит к подобным ошибкам (а таблица от них защищает). Вывод. Если хочешь, пришли мне свое решение, я посмотрю и отвечу, правильное ли оно. Напоследок – несколько вопросов/замечаний. 1. Разобрался ли ты в решении «Таблицей»? В нем полезно разобраться независимо от ЕГЭ. Если не разобрался – напиши, что непонятно. 2. Даже, если твое решение правильное, сдавая экзамен, стоит помнить, что экзаменатор – человек. И, значит, (при прочих равных условиях) – писать то решение, в котором экзаменатору будет легче разобраться. В данном случае, - это, видимо, решение «Таблицей». 3. Ты пишешь: «Так вот, решаю это задание всегда "деревом" возможных решений, получается быстро и наглядно» Насчет «наглядно» - возможно, а насчет «быстро» - сомневаюсь. Я вот сделал ошибку при построении дерева. Если бы не знал правильный ответ (быстро заполнил таблицу), - пропустил бы. Успехов! [/quote]

Ответов - 55, стр: 1 2 3 4 All

Косов: Добрый день. Отрабатываем с учениками и таблицу и дерево. Выбирают (хотя может я не доступно объяснил "Таблицу") дерево - на мой взгяд решение "деревом" :) попроще и пропостить вариант возможно, но точно так же можно допустить ошибку и в таблице. Не понятно почему 2 балла - должно быть 3! если дерево с комментариями.

Инна: Здравствуйте! Мои ученики тоже чаще решают С3 "деревом", говорят, что им так проще. У Ройтберга, странная на мой взгляд, аргументация...

kmr: Уважаемые коллеги! Разбирали эти задачи с детьми и пришли к выводу, что подобные задачи подходят под следующий шаблон: если число N делится на А, то к общему количеству программ (способов разложений числа N) прибавить количество программ для числа N/A; во всех остальных случаях прибавить количество программ для числа N-B, где В-число для прибавления. Получим в общем виде формулу K(N)=K(N-B)+K(N/A) Например, если есть команды 1. прибавить 1 2. умножить на 3 То количество программ в общем виде запишется так K(N)=K(N-1)+K(N/3) Иначе, по шагам: N=1, 0+1=1, K(N)=1 N=2, 0+1+1=2, K(N)=1 N=3, 0+1+1+1=(0+1)*3=3, K(N)=K(N-1)+K(N/3)=K(2)+K(1)=2 N=4, 0+1+1+1+1=(0+1)*3+1=4 K(N)=K(N-1)=K(3)=2 и т.д. Если есть более 2 команд или подобные команды? Например, для команд 1. прибавить 1 2. прибавить 3 По шаблону должно быть K(N)=K(N-1)+K(N-3) Считаем K(0)=1 N=1 0+1=1 K(N)=K(0)=1 N=2 0+1+1=2 K(N)=K(N-1)=K(1)=1 N=3 0+1+1+1=0+3=3 K(N)=K(N-1)+K(N-3)=1+0=2 N=4 0+1+1+1+1=0+3+1=4 K(N)=K(N-1)+K(N-3)=1+2=3, а на самом деле 2 программы. Как быть в этом случае?


Поляков: kmr пишет: Считаем K(0)=1 N=1 0+1=1 K(N)=K(0)=1 N=2 0+1+1=2 K(N)=K(N-1)=K(1)=1 N=3 0+1+1+1=0+3=3 K(N)=K(N-1)+K(N-3)=1+1=2 N=4 0+1+1+1+1=0+3+1=4 K(N)=K(N-1)+K(N-3)=1+2=3, а на самом деле 2 программы. Вы решили задачу при начальном значении 0, там 3 программы: 1111, 12 и 21: 0+1+1+1+1=0+3+1=0+1+3=4

Чайка: Научите решать с помощью "дерева", пожалуйста.

Елена Стонт: Здравствуйте! Мы решаем с помощью дерева. Не рассчитываем на 3 балла, но надеемся на 1 (ответ всегда получается правильный) или 2, указывая, что дерево отображает все возможные способы получения следующего значения возможными командами. Пример. Задача из МИОО, ДР №1/2011, вариант 2. Даны две команды: 1. Прибавь1, 2. Умножь на 4. Сколько есть программ, которые число 1 преобразует в число 29. Решение. Строим дерево так (построить намного проще, чем дать описание процесса): Рисуем вниз ветку 1 -->2 -->… --> 29, где --> это команда «+1» (подписываем их так). Получаем 1 программу. От 7 рисуем ветку --> 28 (эту стрелку подписываем *4) --> 29 (стрелка +1). Получаем 1 программу. От 6 рисуем ветку --> 24 (эту стрелку подписываем *4) --> 25… --> 29 (стрелки +1). Получаем 1 программу. От 5 рисуем ветку --> 20 (эту стрелку подписываем *4) --> 21… --> 29 (стрелки +1). Получаем 1 программу. От 4 рисуем ветку --> 16 (эту стрелку подписываем *4) --> 17… --> 29 (стрелки +1). Получаем 1 программу. От 3 рисуем ветку --> 12 (эту стрелку подписываем *4) --> 23… --> 29 (стрелки +1). Получаем 1 программу. От 2 рисуем ветку --> 8 (эту стрелку подписываем *4) --> 9… --> 29 (стрелки +1). Получаем 1 программу. От 1 рисуем ветку --> 4 (эту стрелку подписываем *4) . Смотрим на дерево. От ветки 4 и вниз у нас 5 ответвлений. Таким образом, получаем 5 программ. Считаем все программы: 1+1+1+1+1+1+1+5 = 12.

mpvish: Я тоже сначала строю дерево (так учащиеся понимают быстрее), потом стараемся "заложить" это в таблицу.

Сидоров: Я решаю "обратным сокращенным деревом", решается в минуту, объясняется за три. Всякие таблицы и формулы отдыхают.

Поляков: Сидоров пишет: Я решаю "обратным сокращенным деревом", решается в минуту, объясняется за три. Всякие таблицы и формулы отдыхают. Как я понимаю, сокращение идет за счет того, что умножение не всегда обратимо. А если нет умножения и несколько сотен решений?

Сидоров: Насчет умножения не понял, сорри. Под "сокращением" имею ввиду непрорисовку ветвей, выходящих из узлов, для которых количество путей к цели уже вычислено. "Обратным" я называю дерево, потому что ищу кол-во путей от конца к началу обратными операциями.

Поляков: Сидоров пишет: Насчет умножения не понял, сорри. Если идти от конечного значения, то, например, при наличии команды "умножь на 3" ветвление будет только тогда, когда число делится на 3. Было бы интересно посмотреть на решение с большим количеством программ (>100). И еще не совсем ясно, как доказывать, что других нет и ничего не пропущено (чтобы получить 3 балла).

Сидоров: Дайте мне условие, на примере которого я могу показать решение. Насчет "как доказывать" - я строю полное дерево вариантов, как мне доказывать его полноту!?

Поляков: Сидоров пишет: Дайте мне условие, на примере которого я могу показать решение. Любая из задач 6-10 из файла C3.doc.Насчет "как доказывать" - я строю полное дерево вариантов, как мне доказывать его полноту!? :-) Это пока открытый вопрос. Я пытаюсь "разговорить" разработчиков ЕГЭ по поводу того, как будет оцениваться такое решение, они обещали ответить через пару дней.

Сидоров: 6) У исполнителя Калькулятор три команды, которым присвоены номера: 1. прибавь 1 2. прибавь 2 3. умножь на 3 Сколько есть программ, которые число 1 преобразуют в число 12? Ответ обоснуйте. Ищется число путей от 12 до 1, сначала пишу "ствол" с 12 до 1, потом иду снизу вверх, рисуя ответвления. [pre2] -2 <- x -> /3 | -1 (84)10 - 12 - 4(4) (53)9 - 11 (31)8 - 10 (19)7 - 9 - 3(3) (12)6 - 8 (7) 5 - 7 (4) 4 - 6 - 2(1) (3) 3 - 5 (1) 2 - 4 1 - 3 - 1 2 1 В скобках - кол-во путей от этого числа до 1. Сумма скобок и трех 1 снизу равна 225.[/pre2] Можно еще подсчитывать и указывать количество путей для чисел "основного ствола", получится пресловутая таблица. Фактически, это схематическая визуализация индукции. С "двухоперационными" примерами вообще элементарно выходит.

Поляков: Сидоров пишет: сначала пишу "ствол" с 12 до 1, потом иду снизу вверх, рисуя ответвления. По сути то же динамическое программирование, только форма записи другая.

Сидоров: У той формы записи, которя в ответах демоварианта, у моих учеников помутнение в глазах и мозгу. А "карту", где нарисовано, какими способами дойти от большего числа к меньшему, они сразу понимают.

Ion: Я, честно говоря, тоже не могу понять, почему построение дерева не устраивает - разве при этом автоматически не доказывается, что других решений нет?

Поляков: Ion пишет: Я, честно говоря, тоже не могу понять, почему построение дерева не устраивает - разве при этом автоматически не доказывается, что других решений нет? Насколько я понимаю, есть две причины: 1) дерево - для ручного подсчёта, а информатика всё-таки занимается автоматической обработкой информации; решение таблицей (динамическое программирование) очень просто алгоритмизируется; 2) при большом числе программ (см. задачи 6-10 из файла C3.doc) дерево рисовать замучаетесь.

Сидоров: Держу пари, что в реале трехоперационных задач не будет, и не будет задач с количеством ответов больше 100. Подсчеты в них слишком громоздки даже для табличного метода.

Ion: решение таблицей (динамическое программирование) очень просто алгоритмизируется Константин, если Вам не трудно, опишите пожалуйста, этот алгоритм более подробно и понятно. Или скажите, где можно более подробно про это прочитать. Я готовлюсь к экзамену самостоятельно и не совсем его понимаю. :( Кроме того, в пользу дерева свидетельствует следующий факт. В демо-варианте указаны две формы решения, но имеется приписка: "одним из приведенных выше способов или любым другим". Если дерево автоматически доказывает отсутствие других решений, то как это решение можно не засчитать на 3 балла? К тому же оно вполне подпадает под "любой другой способ". Иными словами, подав апелляцию и доказав, что это строгое решение, не допускающее других ответов, я имею полное право рассчитывать на 3 балла. Хотя, с другой стороны, на практике у нас ничего никому не докажешь, увы...

Поляков: Ion пишет: опишите пожалуйста, этот алгоритм более подробно и понятно Про динамическое программирование можно почитать в файле C3.doc или в главе нового учебника (там подробнее, но сложнее). Более подробно и понятно я описать, наверное, не смогу. :-) Если дерево автоматически доказывает отсутствие других решений, то как это решение можно не засчитать на 3 балла? Давайте подождем ответа разработчиков КИМ (будет на днях, опубликую здесь и на сайте).

Поляков: Уважаемые коллеги-учителя! Разработчиков КИМ ЕГЭ-2012 интересуют ваши предложения по оценке решений C3, полученных с помощью построения полного дерева, без динамического программирования. Если эта тема вас интересует, напишите, какие решения вы оценили бы на 3 балла, 2 балла, 1 балл. К предложениям можно приложить файлы с образцами соответствующих решений. Сейчас есть реальная возможность принять участие в формировании критериев оценивания!

Сидоров: Поляков пишет: Уважаемые коллеги-учителя! Разработчиков КИМ ЕГЭ-2012 интересуют ваши предложения по оценке решений C3, полученных с помощью построения полного дерева, без динамического программирования. Если эта тема вас интересует, напишите, какие решения вы оценили бы на 3 балла, 2 балла, 1 балл. К предложениям можно приложить файлы с образцами соответствующих решений. Сейчас есть реальная возможность принять участие в формировании критериев оценивания! Свой метод решения я оцениваю на 3 балла!

Поляков: Сидоров пишет: Свой метод решения я оцениваю на 3 балла! Дело не в методе. Дело в том, что должно обязательно присутствовать в ЗАПИСИ решения, для того, чтобы его можно было оценить в 1, 2 или 3 балла. Кстати, ваш метод - это динамическое программирование, поэтому он идет "вне конкурса". :-) Речь о построении полного дерева.

Сидоров: Я не совсем уверен, что мой метод - это динамическое программирование. Попробуйте решить моим методом: 2 -> 33 1) +5 2) *4 Получится чистое дерево без повторяющихся узлов.

Поляков: Сидоров пишет: 2 -> 33 1) +5 2) *4 Получится чистое дерево без повторяющихся узлов. В таблице ДП тоже получаются только 0, 1 и 2. :-)

Сидоров: Поляков пишет: В таблице ДП тоже получаются только 0, 1 и 2. :-) Таблица получится шибко длинная, а дерево вот: [pre2] 33 - 28 - 23 - 18 - 13 - 8 - 3 | | 7 - 2 2 [/pre2]

Поляков: Сидоров пишет: Я не совсем уверен, что мой метод - это динамическое программирование. Зря. Динамическое программирование состоит в том, что мы учитываем уже готовые результаты предыдущих шагов, не вычисляя из заново. Вы делаете то же самое. А как оформить - дело второе.

Сидоров: Что лучше - такое дерево: [pre2] 33 - 28 - 23 - 18 - 13 - 8 - 3 | | 7 - 2 2 [/pre2] или такая таблица? [pre2] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 2 0 0 0 2 2 [/pre2]

Поляков: Сидоров пишет: Что лучше - такое дерево: ... или такая таблица? Здесь перемешаны два совершенно разных вопроса. Ответы на них такие: 1. Ваш метод - это фактически динамическое программирование. 2. Запись «обратным деревом» в данном случае удобнее для человека (при ручном решении), использование таблицы удобнее при алгоритмизации (при машинном решении).

Татьяна: "У исполнителя Увеличитель две команды,которым присвоены номера: 1. прибавь 1; 2. умножь на 4. Сколько есть программ,которые число 1 преобразуют в число 32? Ответ обоснуйте. " Решаем так: На окружности отмечаем 32 точки. "Прибавить 1"- переход к соседней точке по дуге окружности. "Умножь на 4"- переход к соответствующей точке по хорде. Считаем сколько всевозможных маршрутов из точки 1 в точку 32, содержащих одну хорду (программ, содержащих одну команду "умножь на 4"), две хорды, не содержащих хорд.

Сидоров: Татьяна пишет: "У исполнителя Увеличитель две команды,которым присвоены номера: 1. прибавь 1; 2. умножь на 4. Сколько есть программ,которые число 1 преобразуют в число 32? Ответ обоснуйте. " Решаем так: На окружности отмечаем 32 точки. "Прибавить 1"- переход к соседней точке по дуге окружности. "Умножь на 4"- переход к соответствующей точке по хорде. Считаем сколько всевозможных маршрутов из точки 1 в точку 32, содержащих одну хорду (программ, содержащих одну команду "умножь на 4"), две хорды, не содержащих хорд. Я тоже как-то развлекался, бывало, рисуя графы для С3: http://ege.no-ip.org/c3g.htm Но решать так не посоветую.

PavelG: Доброго времени суток. Читая сообщения на форуме, я всё равно не понял как можно доказать, что других программ нет. Подскажите,если не сложно, как данный факт правильно отразить в решении(напр. через реккурентные формулы).

Поляков: PavelG пишет: я всё равно не понял как можно доказать, что других программ нет. Подскажите,если не сложно, как данный факт правильно отразить в решении(напр. через реккурентные формулы). Давайте почитаем решение разработчиков ЕГЭ (см. демо-вариант): Любая непустая программа увеличит исходное число, т.е. даст число, больше 1. Значит, R(1) = 1. Для каждого следующего числа рассмотрим, из какого числа оно может быть получено за одну команду исполнителя. Если число не делится на три, то оно может быть получено только из предыдущего с помощью команды прибавь 1. Значит, количество искомых программ для такого числа равно количеству программ для предыдущего числа: R(i) = R(i-1). Если число на 3 делится, то вариантов последней команды два: прибавь 1 и умножь на 3, тогда R(i) = R(i-1) + R(i/3). Здесь ключевой момент в том, что для каждого числа мы рассматриваем ВСЕ возможные способы его получения. Поэтому других программ, действительно, нет.

PavelG: Спасибо, я понял. Но обязательно ли приводить столь подробные разъяснения, как во второй форме решения задачи из демо-варианта(если решать с помощью таблицы)?

Поляков: PavelG пишет: обязательно ли приводить столь подробные разъяснения, как во второй форме решения задачи из демо-варианта (если решать с помощью таблицы)? Эксперт формально руководствуется указаниями по оцениванию. На 3 балла нужно «Правильное указание количества возможных программ со строгим доказательством правильности (одним из приведенных выше способов или любым другим).» Допустим, вы привели только таблицу без словесных пояснений. Эксперт ищет «строгое доказательство правильности», его нет. И ставит 1 балл (правильно указан ответ). Так что, рекомендую подробно объяснять свое решение, так, чтобы было ясно, что вы доказали отсутствие других программ.

Ris: здравствуйте, мне понятно как решать таблицей когда у нашего калькулятора две кнопки, но как быть если у калькулятора например три кнопки? объясните пожалуйсто

Поляков: Ris пишет: как быть если у калькулятора например три кнопки? Уже объяснял.

Ris: не заметила, большое спасибо.

Ris: а есть объяснение с примером где нужно не из 1 получать какоето число, а из 6 например? в том файле написано аналогично первому, ноя у меня не сходится.

Поляков: Ris пишет: нужно не из 1 получать какоето число, а из 6 например В этом случае начальное значение для последовательности будет R(6)=1 (одна программа, пустая). Для для всех X, меньших 6, принимаем R(X)=0.но у меня не сходится Сочувствую. Но это не вопрос, так что нельзя надеяться на ответ.

Ris: спаибо, все поняла.

kmr: Как быть при такой постановке задачи: 1. вычти 1 2. умножь на 2 3. прибавь 3 4. раздели на 5 Получить, например, с 1 до 10? В вашем файле ничего об этом не сказано. Или таких заданий не будет?

Поляков: kmr пишет: Как быть при такой постановке задачи: 1. вычти 1 2. умножь на 2 3. прибавь 3 4. раздели на 5 Получить, например, с 1 до 10? В вашем файле ничего об этом не сказано. Или таких заданий не будет? Поскольку тут есть команды и на увеличение, и на уменьшение числа, программ бесконечно много. Таких заданий точно не будет.

Поляков: Пример решения задачи С3 с помощью дерева и его экспертная оценка. Задание:У исполнителя Увеличитель две команды,которым присвоены номера: 1. прибавь 1 2. умножь на 4 Сколько есть программ,которые число 1 преобразуют в число 32? Ответ обоснуйте.Решение: Анализ эксперта (М.А. Ройтберг):Загрузить документ.

malk: Допустим ли такой способ решения: Так как 4^3>32 команда 2 не может быть использована более двух раз. Следовательно, возможно 3 случая: 1. Команда 2 не используется - 1 программа. 2. Команда 2 используется 1 раз, перед ней а1 команд 1, после нее а2 команд 1. (1+а1)*4+а2=32; а1=7-а2/4; 0<= а1<=7 - 8 программ. 3. Команда 2 используется 2 раза, а1,а2,а3 - блоки, на которые разбиваются команды 1. ((1+а1)*4+а2)*4+а3=32; 16*а1+4*а2+а3=16; При а1>1 решений нет; При а1=1 а2=а3=0 - 1 программа; При а1=0 а2=4-а3/4; 0<=а2<=4 - 5 программ. В сумме получается 15 программ.

Поляков: malk пишет: Допустим ли такой способ решения: Так как 4^3>32 команда 2 не может быть использована более двух раз. Следовательно, возможно 3 случая: ... Согласно критериям оценивания демо-варианта, допустим любой способ решения, который позволяет получить правильный ответ и доказать, что никаких других программ, кроме учтенных, не существует. Ваш способ, на мой взгляд, этим критериям удовлетворяет. Но в более сложных случаях количество вариантов перебора может быть велико, легко запутаться.

Елена Стонт: Уважаемые участники! Хочу обратить ваше внимание, что на сайте ФИПИ опубликованы рекомендации по проверке заданий ЕГЭ для экспертов. В предложенных материалах разобраны примеры оценивания заданий части С, в том числе С3. Материал интересный. http://fipi.ru/view/sections/63/docs/597.html

Сидоров: В книжке Авдошина (есть на alleng) тоже обратное дерево. Единственная книжка по демо этого года. Правда, по первому, а не по второму.

A_School_9: КАК РЕШАТЬ С3 если из 5 в 49 число преобразуется команды прибавь 1 и умножь на 3???????????????????????????

Поляков: A_School_9 пишет: КАК РЕШАТЬ С3 если из 5 в 49 число преобразуется команды прибавь 1 и умножь на 3??????????????????????????? Так же, как и другие аналогичные задания. См. здесь. От количества вопросительных знаков и эффект не меняется. Посмотрите еще здесь.

Lekter: Если решать С3 таблицей, обязательно надо писать расчёты значений, которые в таблице?

Поляков: Lekter пишет: Если решать С3 таблицей, обязательно надо писать расчёты значений, которые в таблице? Нужно доказать, что нет других программ. Лучше привести общие формулы, расчеты для первых значений, а дальше написать "действуем аналогично, используя приведенные выше формулы".

lex09: Как вы думаете, "боевые" КИМы будут содержать только задание C3, как в Демо, или всё же могут и выигрышную стратегию игрока дать?

Поляков: lex09 пишет: "боевые" КИМы будут содержать только задание C3, как в Демо, или всё же могут и выигрышную стратегию игрока дать? Думаю, что только задания того типа, как в Демо. Уверен, что стратегии не будет.



полная версия страницы