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'