
- Главная
- Каталог
- Образование
- Art of Code
Статистика канала
#include <iostream>
using namespace std;
int f(int a, int b) {
if (a == 0 || b == 0) {
return a + b;
}
if (a > b) {
return f(a - b, b);
}
return f(a, b - a);
}
int main() {
cout << f(17, 257) << endl;
return 0;
}{}
что напечатается на экране?
Решение: ||оптимальнее перебора по всем случаям ничего не нашлось..., поэтому просто ответ: 1 по алгоритму евклида||
// Выберите самый точный вариант вычисления суммы (предполагаем, что числа только положительные)
// Вариант 1
double sum(vector<float> &v) {
return accumulate(v.begin(), v.end(), 0.0);
}
// Вариант 2
double sum(vector<float> &v) {
sort(v.begin(), v.end());
return accumulate(v.begin(), v.end(), 0.0);
}
// Вариант 3
double sum(vector<float> &v) {
sort(v.begin(), v.end(), greater<float>());
return accumulate(v.begin(), v.end(), 0.0);
}{}
Решение: Самый точный вариант — Вариант 2 (сортировка по возрастанию).
Объяснение:
При суммировании чисел с плавающей точкой возникает проблема потери точности из-за ограниченной мантиссы. Когда мы складываем числа сильно разного порядка, младшие разряды меньшего числа теряются.
Почему Вариант 2 самый точный:
Сортировка по возрастанию `(sort(v.begin(), v.end()))` означает, что мы начинаем суммировать с наименьших чисел
При таком подходе меньшие числа успевают накопиться до того, как будут добавлены к значительно большим числам
Это уменьшает потерю точности, так как числа одного порядка складываются сначала
Почему другие варианты хуже:
Вариант 1: Без сортировки — порядок суммирования произвольный, возможна значительная потеря точности
Вариант 3: Сортировка по убыванию — начинаем с самых больших чисел, и когда к ним добавляются очень маленькие числа, они могут быть полностью проигнорированы из-за ограниченной точности
@codeof_art
@codeof_art
@codeof_artТрек 1. Алгоритмический. Индивидуальный зачет [призовой фонд 2 750 000 рублей]
Реши задачи, которые помогут прокачаться в работе с алгоритмами и структурами данных. Похожие задания встречаются на собеседованиях в МТС и других крупных компаниях. До 240 лучших участников попадут в финал и сразятся в лайв-кодинге.
Трек 2. Программирование роботов. Командный формат [призовой фонд 7 500 000 рублей]
Проведи робота по виртуальному лабиринту, затем управляй им дистанционно на офлайн-полигоне, а в финале — пройди испытания на реальной площадке и выбей соперников с платформы.
🎁 Организаторы отправят командам финалистов по одному роботу Waveshare Cobra Flex для кастомизации. После соревнований они останутся у участников в качестве подарка.
📍 Зрелищный шоу-финал с ИИ-технологиями, кодерскими челленджами и выступлениями международных и российских спикеров пройдет 21 ноября в МТС Live Холл.
Стоит участвовать, чтобы:
— Освежить знания и прокачать новые навыки.
— Заявить о себе на всю страну, получить карьерный буст и шанс лично пообщаться с HR-специалистами МТС.
⏰ Регистрация участников до 20 октября на сайте.
Хочешь поступить в ШАД, Ai Masters, или ААА? А может ты мечтаешь тащить собесы и поступить в крутую магу, но тебе не хватает фундамента? Узнал себя? Тогда записывайся у администратора на любой из курсов:
Наши курсы заточены на практику и конкретные задачи, вся теория будет разобрана на конкретных задачах и примерах, которые будут на экзаменах и на собесах. Ничего нудного и скучного! Изучаем только то, что вам реально понадобится! Хочешь конкретики? На нашам сайте можно найти программу, подробности и отзывы на каждый курс.
Помимо кучи авторских задач мы даем доступ к уникальной закрытой базе заданий ШАДа, разбор реального контеста в ШАД, разбор ВСЕХ задач с собеседований в ШАД, Ai Masters, ААА! Более того, вы получите эксклюзивные материалы для проверяющих с собесов, пробный экзамен, инсайды, персональные рекомендации, собес с подробной консультацией и дальнейшим сопровождением вплоть до поступления в место мечты! А если вы выполните все рекомендации, но не достигнете поставленной цели, то вам вернут все потраченные деньги!
Для вопросов и покупок пишем администратору и не тянем с этим: на каждом курсе количество мест ограничено!
int fn(int v) {
if (v == 1 || v == 0) {
return 1;
}
if (v % 2 == 0) {
return fn(v / 2) + 2;
}
return fn(v - 1) + 3;
}{}
fn(7)?
Решение: Вычисление fn(7):
v = 7 (нечётное):
return fn(6) + 3
v = 6 (чётное):
return fn(3) + 2
v = 3 (нечётное):
return fn(2) + 3
v = 2 (чётное):
return fn(1) + 2
v = 1:
return 1
Теперь поднимаемся обратно по цепочке вызовов:
Шаг 5: fn(1) = 1
Шаг 4: fn(2) = fn(1) + 2 = 1 + 2 = 3
Шаг 3: fn(3) = fn(2) + 3 = 3 + 3 = 6
Шаг 2: fn(6) = fn(3) + 2 = 6 + 2 = 8
Шаг 1: fn(7) = fn(6) + 3 = 8 + 3 = 11
Ответ
fn(7) = 11Отзывы канала
- Добавлен: Сначала новые
- Добавлен: Сначала старые
- Оценка: По убыванию
- Оценка: По возрастанию
Каталог Телеграм-каналов для нативных размещений
Art of Code — это Telegam канал в категории «Образование», который предлагает эффективные форматы для размещения рекламных постов в Телеграмме. Количество подписчиков канала в 2.1K и качественный контент помогают брендам привлекать внимание аудитории и увеличивать охват. Рейтинг канала составляет 7.0, количество отзывов – 1, со средней оценкой 3.0.
Вы можете запустить рекламную кампанию через сервис Telega.in, выбрав удобный формат размещения. Платформа обеспечивает прозрачные условия сотрудничества и предоставляет детальную аналитику. Стоимость размещения составляет 3496.5 ₽, а за 2 выполненных заявок канал зарекомендовал себя как надежный партнер для рекламы в TG. Размещайте интеграции уже сегодня и привлекайте новых клиентов вместе с Telega.in!
Вы снова сможете добавить каналы в корзину из каталога
Комментарий