💡 Инструкция: Выберите один ответ из пяти. Время — 85 минут. Верный вариант в каждом вопросе один; после завершения доступны общий результат, профиль по 6 темам и объяснения.
Вопрос 12 из 30
В тесте «Воспроизводимость математической модели» показанный фрагмент нарушает правило из темы «Допуски». Какая редакция исправляет причину, а не только её проявление?
MATLAB Фрагмент для рецензии Копировать
ok = all(a==b,"all");
Принять эту редакцию как полную замену текущего блока. Перед принятием проверить предпосылки операции, форму результата и один численный инвариант. В журнале проверки сохранить вход, ожидаемый результат и фактическое расхождение. Для темы «Допуски» также сверить класс данных и сохранение ожидаемой структуры выхода. ok = norm(a-b)<eps;
Переписать вычислительный шаг следующим образом. Сравнить результат с формулой на двух входах, где меняются ориентация данных и масштаб величин. Контрольный пример должен воспроизводиться на чистом запуске проекта. Для темы «Допуски» также сверить класс данных и сохранение ожидаемой структуры выхода. ok = all(a==b,"all");
Заменить исходный блок этой реализацией. Добавить регрессионный пример, на котором исходная версия расходится с требованием по значению или размерности. Допуск и критерий принятия зафиксировать до просмотра результата. ok = all(abs(a-b)./abs(b)<relTol,"all");
Использовать показанный вариант вместо дефектного фрагмента. После замены проверить обычный и граничный входы, заранее вычислив ожидаемый результат. Отдельно убедиться, что ближайшая неверная реализация этот контроль не проходит. ok = all(abs(a-b) <= absTol + relTol.*max(abs(a),abs(b)),"all");
Внести показанную замену без изменения входного контракта. На минимальном примере сопоставить форму выхода и два контрольных значения с независимым эталоном. Результат проверки оформить так, чтобы его можно было повторить без ручной подгонки. ok = all(round(a,6)==round(b,6),"all");
Вопрос 17 из 30
Для темы «Документирование допущений» в тесте «Воспроизводимость математической модели» приведён дефектный блок. Какое замечание рецензента можно принять?
MATLAB Фрагмент для рецензии Копировать
meta.comment = fileread("README.txt");
Внести показанную замену без изменения входного контракта. Перед принятием проверить предпосылки операции, форму результата и один численный инвариант. Отдельно убедиться, что ближайшая неверная реализация этот контроль не проходит. Для темы «Документирование допущений» также сверить класс данных и сохранение ожидаемой структуры выхода. notes = "model seems fine";
Использовать показанный вариант вместо дефектного фрагмента. Добавить регрессионный пример, на котором исходная версия расходится с требованием по значению или размерности. В журнале проверки сохранить вход, ожидаемый результат и фактическое расхождение. Для темы «Документирование допущений» также сверить класс данных и сохранение ожидаемой структуры выхода. disp("linear model");
Принять эту редакцию как полную замену текущего блока. Сравнить результат с формулой на двух входах, где меняются ориентация данных и масштаб величин. Допуск и критерий принятия зафиксировать до просмотра результата. Для темы «Документирование допущений» также сверить класс данных и сохранение ожидаемой структуры выхода. save("result.mat");
Заменить исходный блок этой реализацией. На минимальном примере сопоставить форму выхода и два контрольных значения с независимым эталоном. Контрольный пример должен воспроизводиться на чистом запуске проекта. meta.assumptions = ["linear response below 5 V" "temperature constant within 0.5 C" "independent noise"];
meta.validRange = struct("voltage",[0 5],"temperature",[19.5 20.5]);
Переписать вычислительный шаг следующим образом. После замены проверить обычный и граничный входы, заранее вычислив ожидаемый результат. Результат проверки оформить так, чтобы его можно было повторить без ручной подгонки. Для темы «Документирование допущений» также сверить класс данных и сохранение ожидаемой структуры выхода. meta.comment = fileread("README.txt");
Вопрос 22 из 30
Показанный код из темы «Контроль ресурсов» не соответствует постановке. Какая редакция восстанавливает вычислительный договор?
MATLAB Фрагмент для рецензии Копировать
parfor k=1:numel(configs), runHeavy(configs(k)); end
Принять эту редакцию как полную замену текущего блока. После замены проверить обычный и граничный входы, заранее вычислив ожидаемый результат. Контрольный пример должен воспроизводиться на чистом запуске проекта. Для темы «Контроль ресурсов» также сверить класс данных и сохранение ожидаемой структуры выхода. maxConcurrent = feature("numcores");
Использовать показанный вариант вместо дефектного фрагмента. На минимальном примере сопоставить форму выхода и два контрольных значения с независимым эталоном. Допуск и критерий принятия зафиксировать до просмотра результата. bytesPerRun = estimateBytes(cfg);
availableMemory = queryAvailableMemory(); % проектная кроссплатформенная обёртка
maxConcurrent = max(1,floor(0.7*availableMemory/bytesPerRun));
runBatches(configs,maxConcurrent);
Переписать вычислительный шаг следующим образом. Добавить регрессионный пример, на котором исходная версия расходится с требованием по значению или размерности. Отдельно убедиться, что ближайшая неверная реализация этот контроль не проходит. Для темы «Контроль ресурсов» также сверить класс данных и сохранение ожидаемой структуры выхода. parfor k=1:numel(configs), runHeavy(configs(k)); end
Заменить исходный блок этой реализацией. Перед принятием проверить предпосылки операции, форму результата и один численный инвариант. Результат проверки оформить так, чтобы его можно было повторить без ручной подгонки. Для темы «Контроль ресурсов» также сверить класс данных и сохранение ожидаемой структуры выхода. runBatches(configs,Inf);
Внести показанную замену без изменения входного контракта. Сравнить результат с формулой на двух входах, где меняются ориентация данных и масштаб величин. В журнале проверки сохранить вход, ожидаемый результат и фактическое расхождение. Для темы «Контроль ресурсов» также сверить класс данных и сохранение ожидаемой структуры выхода. maxConcurrent = numel(configs);