Найти - Пользователи
Полная версия: Помогите разобраться в задаче...
Начало » Python для новичков » Помогите разобраться в задаче...
1
Vselenskiy
Входные данные: 2 неотъемлемых действительных числа a и b - аргументы командной строки. b не равно 0.

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

Додумался пока только до такого:

import sys
import math
a=0
b=1
x= math.sqrt(a*b)/math.e**a*b+a*math.pow(math.e*(2*a/b))
print x


py.user.next
>>> import math
>>> 
>>> def f(a, b):
...     if b == 0:
...         raise ValueError('b = 0')
...     return \
...         (a * b) ** 0.5 / (math.e ** a * b) + \
...         a * math.e ** (2 * a / b)
... 
>>> f(1, 2)
2.9784118759704894
>>> f(1, 0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 3, in f
ValueError: b = 0
>>>
Rodegast
> raise ValueError('b = 0')

Для деления на ноль есть ZeroDivisionError, хотя оно само возникнет при b == 0, по этому я бы ничего специально не вызывал.
py.user.next
Rodegast
по этому я бы ничего специально не вызывал
Условие есть, связь условия с формулой не очевидна.

Выходные данные должны быть действительным числом, но в числителе может получиться корень из отрицательного числа - комплексное число. Но в условии нет ничего об отрицательности произведения a и b. Следовательно, нельзя утверждать, что условие связано с формулой.
Rodegast
> Условие есть, связь условия с формулой не очевидна

Как-бы да. Даже фразу “b не равно 0.” можно понять не однозначно. Но это проблема большинства ученических задач.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB