Spaces:
Sleeping
Sleeping
| """Генератор задач: ровно n задач""" | |
| from core.base_generator import BaseTaskGenerator | |
| from models.task import Task | |
| from config import COMPLEXITY_CONFIG | |
| import random | |
| class ExactCountGenerator(BaseTaskGenerator): | |
| """Генератор задач про ровно n задач""" | |
| def generate(self) -> Task: | |
| """Генерация задачи""" | |
| config = COMPLEXITY_CONFIG[self.complexity] | |
| p_more_n = random.choice([0.59, 0.65, 0.67, 0.7, 0.74, 0.79]) | |
| p_more_n_minus_1 = random.choice([0.65, 0.7, 0.74, 0.79, 0.8]) | |
| if p_more_n_minus_1 <= p_more_n: | |
| p_more_n_minus_1 = p_more_n + 0.05 | |
| n = random.randint(8, 12) | |
| subjects = ['биологии', 'математике', 'физике', 'химии'] | |
| subject = random.choice(subjects) | |
| question = (f"Вероятность того, что на тестировании по {subject} учащийся П. верно решит больше {n} задач, равна " | |
| f"{p_more_n}. Вероятность того, что П. верно решит больше {n - 1} задач, равна {p_more_n_minus_1}. " | |
| f"Найдите вероятность того, что П. верно решит ровно {n} задач.") | |
| answer = round(p_more_n_minus_1 - p_more_n, 4) | |
| steps = [ | |
| f"1. P(ровно {n}) = P(> {n - 1}) - P(> {n})", | |
| f"2. P = {p_more_n_minus_1} - {p_more_n} = {answer}" | |
| ] | |
| return Task( | |
| type='exact_count', | |
| question=question, | |
| answer=answer, | |
| answer_fraction=f"{answer:.4f}", | |
| solution=f"Вероятность = {answer}", | |
| steps=steps, | |
| complexity=self.complexity | |
| ) | |
| def get_type(self) -> str: | |
| return 'exact_count' |