Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 13, 2016 00:46:36

ElenaVP
Зарегистрирован: 2016-11-13
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Прошу помощи - задача решена частично правильно

Здравствуйте!
Прошу помощи в решении задачи.

Входные данные: 3 действительных числа - аргументы командной строки.
Выходные данные: результат вычисления формулы



Аргументы передаются в порядке, указанном в формуле, названия переменных могут использоваться любые.

 import sys
import math
a=float(sys.argv[1])
b=float(sys.argv[2])
c=float(sys.argv[3])
f=1/(c*math.sqrt(2*math.pi))*math.exp(-1*(a-b)**2/2*b**2)
print (f)

Результат: частично правильно.

Подскажите, пожалуйста, где ошибка?

Отредактировано ElenaVP (Ноя. 13, 2016 00:48:53)

Офлайн

#2 Ноя. 13, 2016 02:38:58

scidam
Зарегистрирован: 2016-06-15
Сообщения: 288
Репутация: +  35  -
Профиль   Отправить e-mail  

Прошу помощи - задача решена частично правильно

переобозначения a,b,c - они немного затрудняют реализацию исходной формулы. Гораздо проще, если так:

 x = float(sys.argv[1])
mu = float(sys.argv[2])
sigma = float(sys.argv[3])
f = 1/sigma etc....
Используя такие обозначения труднее ошибиться переписывая эту формулу плотности нормального распределения.

В чем ошибка: У вас с - это sigma, но в экспоненте у вас знаменатель дроби с “b”, а не с “c”, как должно быть

Офлайн

#3 Ноя. 13, 2016 03:26:35

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9993
Репутация: +  857  -
Профиль   Отправить e-mail  

Прошу помощи - задача решена частично правильно

ElenaVP
Подскажите, пожалуйста, где ошибка?
Сигма должна проверяться на ноль.

Деление неправильное
ElenaVP
  
math.exp(-1*(a-b)**2/2*b**2)
  
math.exp(-1 * (a - b) ** 2 / (2 * b ** 2))

И, как сказал scidam, в знаменателе не та переменная
ElenaVP
  
math.exp(-1*(a-b)**2/2*b**2)
  
math.exp(-1 * (a - b) ** 2 / (2 * c ** 2))
Это произошло из-за переделки имён. Важно понимать, что если код заставляет тебя слишком много думать (что в нём и как устроено), то это плохой код (мутный код) и надо его улучшать (прояснять).



Отредактировано py.user.next (Ноя. 13, 2016 03:38:03)

Офлайн

#4 Ноя. 13, 2016 06:35:08

ElenaVP
Зарегистрирован: 2016-11-13
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Прошу помощи - задача решена частично правильно

Огромное вам спасибо!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version