Spaces:
Sleeping
Sleeping
| """Генератор задач: часы со стрелками""" | |
| from core.base_generator import BaseTaskGenerator | |
| from models.task import Task | |
| from fractions import Fraction | |
| from config import COMPLEXITY_CONFIG | |
| import random | |
| class ClockGenerator(BaseTaskGenerator): | |
| """Генератор задач про часы со стрелками""" | |
| def generate(self) -> Task: | |
| """Генерация задачи""" | |
| config = COMPLEXITY_CONFIG[self.complexity] | |
| start_hour = random.randint(1, 11) | |
| interval_length = random.randint(2, 6) | |
| end_hour = (start_hour + interval_length) % 12 | |
| if end_hour == 0: | |
| end_hour = 12 | |
| question = f"Механические часы с двенадцатичасовым циферблатом в какой-то момент сломались и перестали ходить. Найдите вероятность того, что часовая стрелка застыла, достигнув отметки {start_hour}, но не дойдя до отметки {end_hour} часов." | |
| favorable = interval_length | |
| total = 12 | |
| answer_fraction = Fraction(favorable, total) | |
| answer = round(float(answer_fraction), 2) | |
| steps = [ | |
| f"1. Полный круг циферблата: 12 часов", | |
| f"2. Интервал от {start_hour} до {end_hour}: {interval_length}", | |
| f"3. Вероятность = {interval_length}/12 = {answer_fraction}" | |
| ] | |
| return Task( | |
| type='clock', | |
| question=question, | |
| answer=answer, | |
| answer_fraction=str(answer_fraction), | |
| solution=f"Вероятность = {interval_length}/12 = {answer_fraction}", | |
| steps=steps, | |
| complexity=self.complexity | |
| ) | |
| def get_type(self) -> str: | |
| return 'clock' |