"""Генератор задач: гроссмейстеры""" from core.base_generator import BaseTaskGenerator from models.task import Task from config import COMPLEXITY_CONFIG import random class ChessMastersGenerator(BaseTaskGenerator): """Генератор задач про гроссмейстеров""" def generate(self) -> Task: """Генерация задачи""" config = COMPLEXITY_CONFIG[self.complexity] p_white = random.choice([0.5, 0.52, 0.56, 0.6]) p_black = random.choice([0.3, 0.32, 0.4]) question = f"Если гроссмейстер А. играет белыми, то он выигрывает у гроссмейстера Б. с вероятностью {p_white}. Если А. играет черными, то А. выигрывает у Б. с вероятностью {p_black}. Гроссмейстеры А. и Б. играют две партии, причем во второй партии меняют цвет фигур. Найдите вероятность того, что А. выиграет оба раза." answer = round(p_white * p_black, 4) steps = [ f"1. Первая партия (белыми): вероятность победы = {p_white}", f"2. Вторая партия (черными): вероятность победы = {p_black}", f"3. Обе партии выиграны (независимые события): {p_white} × {p_black} = {answer}" ] return Task( type='chess_masters', question=question, answer=answer, answer_fraction=f"{answer:.4f}", solution=f"Вероятность = {answer}", steps=steps, complexity=self.complexity ) def get_type(self) -> str: return 'chess_masters'