Spaces:
Sleeping
Sleeping
| """Генератор задач: несовместные события""" | |
| from core.base_generator import BaseTaskGenerator | |
| from models.task import Task | |
| from config import COMPLEXITY_CONFIG | |
| import random | |
| class IncompatibleGenerator(BaseTaskGenerator): | |
| """Генератор задач про несовместные события""" | |
| def generate(self) -> Task: | |
| """Генерация задачи""" | |
| config = COMPLEXITY_CONFIG[self.complexity] | |
| p1 = random.choice([0.1, 0.15, 0.2, 0.25, 0.3, 0.35]) | |
| p2 = random.choice([0.1, 0.15, 0.2, 0.25, 0.3]) | |
| topics = [ | |
| ('экзамен', '«Вписанная окружность»', '«Тригонометрия»'), | |
| ('экзамен', '«Внешние углы»', '«Параллелограмм»'), | |
| ('экзамен', '«Производная»', '«Интегралы»'), | |
| ('кафе', 'миндальное печенье', 'мороженое'), | |
| ('кафе', 'рогалик', 'эклер') | |
| ] | |
| category, topic1, topic2 = random.choice(topics) | |
| if category == 'экзамен': | |
| question = f"На экзамене по математике школьник отвечает на один вопрос из списка экзаменационных вопросов. Вероятность того, что это вопрос по теме {topic1}, равна {p1}. Вероятность того, что это вопрос по теме {topic2}, равна {p2}. Вопросов, которые одновременно относятся к этим двум темам, нет. Найдите вероятность того, что на экзамене школьнику достанется вопрос по одной из этих двух тем." | |
| else: | |
| question = f"В кафе каждому посетителю приносят одно бесплатное угощение от заведения, которого нет в меню. Вероятность того, что в качестве угощения от заведения принесут {topic1}, равна {p1}. Вероятность того, что в качестве угощения принесут {topic2}, равна {p2}. Найдите вероятность того, что в качестве бесплатного угощения от заведения посетителю И. принесут одно из двух: {topic1} или {topic2}." | |
| answer = round(p1 + p2, 4) | |
| steps = [ | |
| f"1. События несовместны, поэтому вероятности складываются", | |
| f"2. P = P({topic1}) + P({topic2})", | |
| f"3. P = {p1} + {p2} = {answer}" | |
| ] | |
| return Task( | |
| type='incompatible', | |
| question=question, | |
| answer=answer, | |
| answer_fraction=f"{answer:.4f}", | |
| solution=f"Вероятность = {p1} + {p2} = {answer}", | |
| steps=steps, | |
| complexity=self.complexity | |
| ) | |
| def get_type(self) -> str: | |
| return 'incompatible' |