Spaces:
Sleeping
Sleeping
| """Генератор задач: противоположное событие""" | |
| 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' |