Форум » Обработка числовых последовательностей » C4 с егэ 2012 » Ответить

C4 с егэ 2012

Хроно: здравствуйте! сегодня на егэ в c4 была такая задача: требовалось найти произведение двух наибольшых чисел(скорости частиц, которые могут быть отрицательными и не превышают 10000) среди тех, которые вводит пользователь. естественно, все это с минимальным использованием памяти, т.е. как я понял, нельзя сразу считать в массив все скорости и там уже "спокойно" все определить. единственное, что пришло в голову - это создать массив(обозначу его kmax) для записи двух наибольших чисел, и затем в цикле считывать каждую скорость. в случае если скорость выше наименьшего значения kmax, поместить новую скорость взамен "старой". как думаете, сколько поставят баллов за это решение? p.s. далее идет сама программа на ЯП Python, звиняйте что не на паскале) kmax=[0,0] #резерв свободного места для записи макс. скоростей частиц. def getminnumber(lst): # функция определения индекса минимального элемента kmax _m=min(lst) _for i in range(2): __if lst[ i ]==m: ___return i N=int(input()) #вводим кол-во частиц for i in range(N): _temp=int(input())# вводим очередную скорость _if temp>min(kmax): __kmax[getminnumber(kmax)]=temp print(kmax[0]*kmax[1])

Ответов - 23, стр: 1 2 All

Айбу: Вы не учитываете то, что произведение двух отрицательных чисел положительно => при наборе, например: +5 +10 -1000 -200 Ваша программа будет работать неверно, ибо наибольшее произведение в данном наборе -1000*(-200)

Хроно: Айбу пишет: Вы не учитываете то, что произведение двух отрицательных чисел положительно => при наборе, например: +5 +10 -1000 -200 Ваша программа будет работать неверно, ибо наибольшее произведение в данном наборе -1000*(-200) вот блин. как думаете, сколько баллов за это снимут? могут ли за это вообще поставить 0 баллов?

Поляков: Хроно пишет: как думаете, сколько баллов за это снимут? могут ли за это вообще поставить 0 баллов? Думаю, что это 1 или 2 балла, в зависимости о того, какие инструкции были у экспертов.


Гость: Была похожая задача, только нужно было найти минимальное произведение. собственно не разобрался что требуется ближайшее по модулю к нулю или же самое маленькое произведение в том числе и отрицательное. Кто-нибудь знает, чего просили в этом случае? например для данных 10 61 -120 5 нужно было бы выводить 61 * (-120) или 5*10?

Айбу: Гость, у меня тоже было с минимальным. Я написала совсем минимальное, т.е. отрицательное. Если не засчитают - пойду ругаться.

Гость: а я написал по модулю, аналогично - не засчитают пойду на аппеляцию

Айбу: Гость, ну, всё-таки, написано было "минимальное", а не минимальное по модулю.

Гость: Айбу, да и в общем-то задачи аналогичные, что по модулю, что без модуля, решаются на одной и той же мыслишке. хотя чего ждали организаторы это тайна...

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

Гость: а изменение чего-либо обычно считается в абсолютных величинах

malk: Точная формулировка подобной задачи: На ускорителе для большого числа частиц производятся замеры скорости каждой из них. Чтобы в документации качественно отличать одну серию от другой, каждую серию решили характеризовать числом, равным минимальному произведению из всех произведений пар скоростей различных частиц. Вам предлагается написать эффективную, в том числе по используемой памяти, программу (укажите используемую версию языка программирования, например Borland Pascal 7.0), которая будет обрабатывать результаты эксперимента, находя искомую величину. В нашей модели скорость частицы - это величина, которая может принимать как положительные, так и отрицательные значения. Следует учитывать, что частиц, скорость которых измерена, может быть очень много, но не может быть меньше двух. Перед текстом задачи кратко опишите используемый вами алгоритм решения задачи. На вход программе в первой строке подается количество частиц N. В каждой из последующих N строк записано одно целое число со знаком (плюс или минус), по абсолютной величине не превосходящее 10000. Пример входных данных: 5 +123 +2000 +10 +3716 +10 Программа должна вывести одно число - минимальное произведение из всех произведений пар скоростей различных частиц. Пример выходных данных для приведенного выше примера входных данных: 100

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

Поляков: malk пишет: Точная формулировка подобной задачи: На ускорителе для большого числа частиц производятся замеры скорости каждой из них. Чтобы в документации качественно отличать одну серию от другой, каждую серию решили характеризовать числом, равным минимальному произведению из всех произведений пар скоростей различных частиц... Разобрана на сайте.

PavelG: Доброго времени суток. На экзамене была схожая задача на поиск наим. суммы двух чисел по модулю не больших 10000. Как вы считается, на сколько потянет решение задач, в которой нет ни одной синтаксической ошибки, но присутствует серьёзный недостаток в алгоритме. Если быть точнее, то один из случаев(наиб. отриц. помноженное на второй отрицательный максимум) рассмотрен неверно: вместо него считал наиб. отриц * наим. отриц(сам не знаю почему ). Заслуживает ли,на ваш взгляд,такое решение хотя бы 1 или 2 баллов?

malk: PavelG пишет: Заслуживает ли,на ваш взгляд,такое решение хотя бы 1 или 2 баллов? Если смотреть критерии оценивания в Демо-вариантах, то больше похоже на 2 балла. Менее вероятно 1 балл, и еще меньше - 3 балла. Но все это мои личные предположения.



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