Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from math import factorial, exp
- def get_r(_alpha, _beta):
- eps = .00000001
- _r = 1
- while ((_alpha / _beta) ** _r / factorial(_r - 1))* exp(_alpha / _beta) > eps:
- _r += 1
- return _r
- def product(_k, _s, _beta):
- prod = 1
- for m in range(1, _s + 1):
- prod *= (_k + m * _beta)
- return prod
- def get_p_0(_k, _alpha, _beta, _r):
- res_1 = sum([_alpha ** n / factorial(n) for
- n in range(0, _k + 1)])
- res_2 = _alpha ** _k / factorial(_k)
- res_3 = sum([_alpha ** s / product(_k, s, _beta) for
- s in range(1, _r + 1)])
- res = 1 / (res_1 + res_2 * res_3)
- return res
- def get_p_ks(_k, _s, _alpha, _beta, _p_0):
- res = (_alpha ** (_k + _s)) / (factorial(_k) * product(_k, _s, _beta))
- return res * _p_0
- nu = 1./3
- lambd = 2
- mu = 1/1.5
- k = 1
- alpha = lambd / mu
- beta = nu / mu
- r = get_r(alpha, beta)
- # а) Вероятность того, что вооружение нападающей стороны не используется
- p_0 = get_p_0(k, alpha, beta, r)
- print("Вероятность того, что вооружение нападающей стороны не используется", p_0)
- # б) вероятность того, что обнаруженная цель противника будет обстреляна за время пребывания ее на огневой позиции
- b = sum([s * get_p_ks(k, s, alpha, beta, p_0)
- for s in range(1, r + 1)])
- p_otk = b * (beta / alpha)
- print("Вероятность того, что обнаруженная цель противника будет обстреляна за время пребывания ее на огневой позиции:", 1 - p_otk)
- # в)вероятность того, что обнаруженная и обстрелянная цель противника будет уничтожена (поражена)
- accuracy = 0.9
- print("Вероятность того, что обнаруженная и обстрелянная цель противника будет уничтожена (поражена):", (1-p_otk)*accuracy)
- # г) вероятность нахождения цели в зоне поражения нападающей стороны
- print("Вероятность нахождения цели в зоне поражения нападающей стороны", 1 - p_0)
- # д) среднее число целей, находящихся в зоне поражения нападающей стороны;
- print("Cреднее число целей, находящихся в зоне поражения нападающей стороны:", b)
- # е) среднее число образцов вооружения, ведущих обстрел появляющихся целей, и их долю от общего числа образцов вооружения
- h = sum([n * (alpha ** n / factorial(n)) * p_0 for n in range(1, k + 1)]) + k * sum([get_p_ks(k, s, alpha, beta, p_0)
- for s in range(1, r + 1)])
- print("Cреднее число образцов вооружения, ведущих обстрел появляющихся целей:", h)
- # г) доля от общего числа обраZцов вооружения
- g = k - h
- k_g = g / k
- print("Доля простаивающих орудий:", k_g)
- k_h = h / k
- print("Доля занятых орудий:", k_h)
- # Определить необходимое число бригад, чтобы потери овощей были минимальны, а обработка их была наиболее экономичной
- back_punch = 0.5
- loss = ((1-p_otk)*(1-accuracy) + p_otk)*back_punch
- print("loss_coef", loss)
- while loss > 0.1:
- k += 1
- b = sum([s * get_p_ks(k, s, alpha, beta, p_0) for s in range(1, r + 1)])
- p_otk = b * (beta / alpha)
- loss = ((1-p_otk)*(1-accuracy) + p_otk)*back_punch
- #print(loss)
- print(f"loss_coef = {loss} при {k} орудий")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement