В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
TinaAkh
TinaAkh
18.10.2021 12:48 •  Информатика

мистер фокс и мистер форд рассказывают друг другу анекдоты. сначала мистер фокс рассказывает подряд несколько анекдотов, но не больше пяти, чтобы мистеру форду не надоело. затем мистер форд рассказывает подряд несколько анекдотов, но тоже не больше пяти, чтобы мистеру фоксу не надоело. затем опять рассказывает фокс и т.д. они условились заранее, что тот, кто расскажет анекдот с номером 50, пойдет за мороженым. мистер фокс хочет купить мороженое сам. сколько анекдотов ему нужно рассказать первым ходом, чтобы гарантированно этого добиться?

комментарий. слово “гарантированно” означает, что у мистера фокса есть стратегия, сколько анекдотов ему нужно рассказывать каждым своим ходом, чтобы рассказать анекдот номер 50, а мистер форд своими действиями никак не сможет ему помешать.

фраза "несколько анекдотов" означает, что рассказано ненулевое количество анекдотов, в том числе, мог быть рассказан и один анекдот.

Показать ответ
Ответ:
warfacepolina2
warfacepolina2
21.05.2021 16:56

К примеру поле у тебя 420 на 420

Давай разделим его на 36 клеточек.

Тогда края поля будут = 6 отрезков по 70 пикселей.

Смотрим на левый рисунок.

Робот находится в центре зеленого кружочка и смотрит вверх

(в псевдокоде я оперирую цифрами для конкретного моего случая поля 420 на 420, ты можешь вместо вперед 420 и вперед 70 сделать как по заданию вперед(6 шагов) и вперед(1 шаг) соответственно)

цикл повторить 3 раза

{

опустить перо; вперед на 420; повернуть направо на 90 градусов, поднять перо; вперед на 70; повернуть направо на 90 градусов; опустить перо; вперед на 420; повернуть налево на 90 градусов; поднять перо; вперед на 70; повернуть налево на 90 градусов

}

В результате работы этого цикла нарисуется левая картинка (черное - края листа, красное - что мы увидим нарисованным, желтое - где робот пройдет с поднятым пером)

СМОТРИМ НА ПРАВЫЙ РИСУНОК

В конце концов робот окажется в центре зеленого круга и будет смотреть вверх, перо будет поднято.

Теперь он будет идти с поднятым пером по розовой линии, а с опущенным по синей

цикл повторить 3 раза

{

вперед 70; повернуть налево на 90; вперед на 420; повернуть направо на 90; поднять перо; вперед 70; повернуть направо на 90; опустить перо; вперед на 420; повернуть налево; поднять перо;

}

В результате ты получишь поле 420 на 420 зачерченное клеткой размером 70 на 70.

Это просто частный случай решения. Ничего сложного тут нету, надо просто подумать и сделать алгоритм.

Алгоритм частного решения сделан. Сделай теперь блок-схему


Путем пошаговой детализации составьте программы управления графическим исполнителем для решения след
0,0(0 оценок)
Ответ:
BULATIKSPB
BULATIKSPB
09.04.2022 21:07
Код#include <iostream>#include <utility>#include <numeric>#include <vector>class Beast {    int trigger;    double aggression;    double rage_aggression;public:    Beast() = default;    Beast(int trigger, double aggression, double range_aggression)    : trigger(trigger), aggression(aggression), rage_aggression(range_aggression)    { }    Beast(const Beast&) = default;    Beast(Beast&&) = default;    Beast& operator=(const Beast&) = default;    Beast& operator=(Beast&&) = default;    [[nodiscard]] double calculate_aggression(unsigned long amount) const {        return amount > trigger ? rage_aggression : aggression;    }    void ReadFrom (std::istream& is) {        is >> aggression >> rage_aggression >> trigger;    }    void WriteTo(std::ostream &os) const {        os << aggression << " " << rage_aggression << " " << trigger;    }};std::istream& operator >>(std::istream &is, Beast &cls) {    cls.ReadFrom(is);    return is;}std::ostream& operator <<(std::ostream &os, const Beast &cls) {    cls.WriteTo(os);    return os;}class Cage {    double durability;    std::vector<Beast> container;public:    explicit Cage(double durability, std::vector<Beast> container)    : durability(durability), container(std::move(container))    { }    Cage(const Cage&) = default;    Cage(Cage&&) = default;    Cage& operator=(const Cage&) = default;    Cage& operator=(Cage&&) = default;    [[nodiscard]] double calculate_aggressive() const {        auto amount = container.size();        if (amount == 0) return 0;        return std::accumulate(container.begin(), container.end(), 0.0,        [amount](double total_aggressive, const Beast & beast){            return total_aggressive + beast.calculate_aggression(amount);        });    }    [[nodiscard]] bool is_it_normal() const {        auto aggressive = calculate_aggressive();        return aggressive <= durability;    }    [[nodiscard]] int get_capacity() const {        return container.size();    }    [[nodiscard]] double get_durability() const {        return durability;    }};template <typename T>void subsetsUtil(std::vector<T>& A, std::vector<std::vector<T> >& res,                 std::vector<T>& subset, int index){    res.push_back(subset);    for (int i = index; i < A.size(); i++) {        // include the A[i] in subset.        subset.push_back(A[i]);        // move onto the next element.        subsetsUtil(A, res, subset, i + 1);        // exclude the A[i] from subset and triggers        // backtracking.        subset.pop_back();    }}template <typename T>std::vector<std::vector<T>> P(std::vector<T>& A){    std::vector<T> subset;    std::vector<std::vector<T>> res;    int index = 0;    subsetsUtil(A, res, subset, index);    return res;}int main () {    int n, s;    Beast noname{};    std::vector<Beast> set_of_beasts;    std::cin >> n >> s;    for (auto i = 0; i < n; ++i) {        std::cin >> noname;        set_of_beasts.push_back(noname);    }    auto selections = P(set_of_beasts);    std::vector<Cage> variants;    std::transform(selections.begin(), selections.end(), std::back_inserter(variants), [s](std::vector<Beast> &selection){        return Cage(s, selection);    });    std::vector<Cage> true_variants;    std::copy_if(variants.begin(), variants.end(), std::back_inserter(true_variants), [](Cage& x) {return x.is_it_normal();});    auto the_best_of_the_best_variant = *std::max_element(true_variants.begin(), true_variants.end(), [](Cage & s1, Cage & s2){        return s1.get_capacity() < s2.get_capacity();    });    std::cout << the_best_of_the_best_variant.get_capacity();    return 0;}
У Арсения есть n зверьков. Каждый из них обладает характером, поэтому, если в клетке, где находится
У Арсения есть n зверьков. Каждый из них обладает характером, поэтому, если в клетке, где находится
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота