"""Генератор задач: противоположное событие""" from core.base_generator import BaseTaskGenerator from models.task import Task from config import COMPLEXITY_CONFIG import random class ComplementaryGenerator(BaseTaskGenerator): """Генератор задач про противоположное событие""" def generate(self) -> Task: """Генерация задачи""" config = COMPLEXITY_CONFIG[self.complexity] base_prob = random.choice([0.7, 0.71, 0.8, 0.81, 0.92, 0.21, 0.14, 0.11, 0.17]) contexts = [ ('температура тела здорового человека ниже 36,6°C', '36,6°C или выше'), ('новая шариковая ручка пишет плохо или вовсе не пишет', 'пишет хорошо'), ('стекло мобильного телефона разобьется при падении', 'не разобьется'), ('батарейка бракованная', 'исправная') ] context, opposite = random.choice(contexts) question = f"Вероятность того, что {context}, равна {base_prob}. Найдите вероятность того, что {opposite}." answer = round(1 - base_prob, 4) steps = [ f"1. Вероятность противоположного события = 1 - P(исходное)", f"2. P = 1 - {base_prob} = {answer}" ] return Task( type='complementary', question=question, answer=answer, answer_fraction=f"{answer:.4f}", solution=f"Вероятность = 1 - {base_prob} = {answer}", steps=steps, complexity=self.complexity ) def get_type(self) -> str: return 'complementary'