File size: 1,891 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
"""Генератор задач: гроссмейстеры"""

from core.base_generator import BaseTaskGenerator
from models.task import Task
from config import COMPLEXITY_CONFIG
import random


class ChessMastersGenerator(BaseTaskGenerator):
    """Генератор задач про гроссмейстеров"""

    def generate(self) -> Task:
        """Генерация задачи"""
        config = COMPLEXITY_CONFIG[self.complexity]

        p_white = random.choice([0.5, 0.52, 0.56, 0.6])
        p_black = random.choice([0.3, 0.32, 0.4])

        question = f"Если гроссмейстер А. играет белыми, то он выигрывает у гроссмейстера Б. с вероятностью {p_white}. Если А. играет черными, то А. выигрывает у Б. с вероятностью {p_black}. Гроссмейстеры А. и Б. играют две партии, причем во второй партии меняют цвет фигур. Найдите вероятность того, что А. выиграет оба раза."

        answer = round(p_white * p_black, 4)

        steps = [
            f"1. Первая партия (белыми): вероятность победы = {p_white}",
            f"2. Вторая партия (черными): вероятность победы = {p_black}",
            f"3. Обе партии выиграны (независимые события): {p_white} × {p_black} = {answer}"
        ]

        return Task(
            type='chess_masters',
            question=question,
            answer=answer,
            answer_fraction=f"{answer:.4f}",
            solution=f"Вероятность = {answer}",
            steps=steps,
            complexity=self.complexity
        )

    def get_type(self) -> str:
        return 'chess_masters'