Spaces:
Sleeping
Sleeping
File size: 1,926 Bytes
d2213a5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | """Генератор задач: противоположное событие"""
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' |