vanek58
02.09.2020 07:07

Егор считает ооп великолепным подходом к программированию различных систем. сегодня он хочет, чтобы вы начали разрабатывать основу для pyrpg (python role-playing game). представьте себе мир, в котором у игроков есть четыре основных характеристики: сила (strength), ловкость (agility), интеллект (intelligence) и скорость атаки (speed). по умолчанию у каждого героя (player) игры все характеристики равны нулю. в игре используется оружие (weapon), которое при ношении накладывает определённый эффект на игрока. перед вами стоит создать два класса weapon и player, описывающие данную механику. класс weapon описывает оружие. конструктор класса weapon должен иметь вид: weapon(one_handed, strength, agility, intelligence, speed). параметры strength, agility, intelligence, speed описывают силу, ловкость, интеллект и скорость атаки оружия соответственно и являются необязательными. параметр one_handed описывает флаг «одноручности» оружия, также является необязательным и имеет значение по умолчанию true. класс weapon должен иметь методы: is_one_handed() — возвращает true, если оружие является «одноручным», иначе — false; strength() — возвращает силу, получаемую от оружия; agility() — возвращает ловкость, получаемую от оружия; intelligence() — возвращает интеллект, получаемый от оружия; speed() — возвращает скорость атаки, получаемую от оружия; copy() — возвращает копию оружия. над объектами класса weapon должна быть возможность производить следующие действия: weapon * number — создаёт копию оружия с увеличенной в number раз скоростью атаки; weapon *= number — увеличивает скорость атаки оружия в number раз; weapon1 + weapon2 — создаёт новое оружие, суммируя параметры переданных оружий. новое оружие является «двуручным». weapon1 += weapon2 — изменяет первое оружие, суммируя параметры переданных. первое оружие становится «двуручным». str(weapon) — возвращает строковое представление оружия в виде: «weapon[n](strength: st, agility: a, intelligence: intel, speed: sp)», где n = 1, если оружие «одноручное» и n = 2, если «двуручное». класс player описывает игрока. конструктор класса player должен иметь вид: класс player должен иметь методы: strength() — возвращает силу героя, суммируя силу всех оружий; agility() — возвращает ловкость героя, суммируя ловкость всех оружий; intelligence() — возвращает интеллект героя, суммируя интеллект всех оружий; speed() — возвращает скорость атаки героя, вычисляемую как целочисленное среднее арифметическое всех оружий; take_up_weapon(weapon) — добавляет копию оружия герою. игрок может держать одновременно либо два «одноручных» оружия, либо одно «двуручное». если герой не может взять в руки ещё одно оружие, то он сбрасывает одно или два оружия (самое старое); throw_a_weapon() — скидывает всё оружие игрока. над объектами класса player должна быть возможность производить следующие операции: player < < weapon — добавляет копию оружия герою. игрок может держать одновременно либо два «одноручных» оружия, либо одно «двуручное». если герой не может взять в руки ещё одно оружие, то он сбрасывает одно или два оружия (самое старое); -player — скидывает всё оружие игрока; str(player) — возвращает строку, описывающую игрока в формате: player[n]( strength: st, agility: ag, intelligence: intel, speed: sp ) где n — количество оружий у игрока.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
direcrtbyrage
29.07.2022 07:31
Полный код для решения

var
    x: integer;

function f(x: integer): integer;
var
    L, M: integer;
begin
    L := x - 12;
    M := x + 12;
    while L <> M do
        if L > M then
            L := L - M
        else M := M - L;
    f := M;
end;

begin
    for x := 100 to 100000 do
        if f(x) = 1 then begin
            writeln(x);
            break;
        end;
   
end.

Что делает алгоритм из задания? Ищет наибольший общий множитель чисел M и L. То что ответ должен быть 1, означает, что ищем взаимно простые числа

ответ 101
0,0(0 оценок)
Ответ:
akhtyamovedgar
03.11.2021 11:49
Вообще задачка не стоит своих , она стоит куда дороже
Мы знаем что у нас нечетное число букв, причем что нечетность приходится на букву Б (9)
Все палиндромы длиной во все буквы
Тогда каждый палинром  имеет такую схему:
[некий набор альфа]Б[альфа в обратном порядке]
Разных альф может быть тоже 35 и состоит из половины букв Ч и (9-1)/2 = 4 букв Б
Обозначим все колво букв Ч = 2x, а половину - х
Значит у нас тут Перестановки с повторениями, колво которых 35
35 = (x+4)! / (x!4!)
35  * 4! = (x+4)(x+3)(x+2)(x+1)
7 * 5 * 4 * 3 * 2 = (x+4)(x+3)(x+2)(x+1)
можно представить так
7 * 6 *5 * 4 = (x+4)(x+3)(x+2)(x+1)
очевидно что 7 = х+4 т.е.х=3
А букв Ч = 2х = 2*3 = 6

Надеюсь понятно
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота