уравнение греха в python продолжает возвращать неправильный ответ

Я думаю, что у меня глючная версия Python, потому что я получаю неправильный результат. Если вы введете это: sin(степени(39))*41/28 прямо в Google, вы получите значение 0,92150485832. Это правильное значение для данного уравнения.

Однако, когда я пытаюсь выполнить это в python, я получаю значение -1.11258224646.

Код, который я использовал:

number= float(sin(degrees(39))*41/28)
print number

Я также попробовал следующий код (удалены градусы вокруг 39), который возвращает значение 1,41127181563.

number= float(sin(39)*41/28)
print number

Просто для удовольствия я также попробовал такой код:

number= float(sin(radians(39))*41/28)
print number

Этот код вернул ответ 0,921504858323, который был бы правильным ответом для первого уравнения.

Это невозможно, так как 39 в радианах равно 0,680678408. И используя это число в уравнении: (sin(0,680678408)*41)/28 мы получаем 0,017395421, а не 0,921504858323.

Может кто-нибудь объяснить, что здесь происходит. Я потерялся здесь.


person user6240030    schedule 26.04.2016    source источник
comment
Я ожидаю, что radians(39) лучше читается на английском языке, поскольку конвертирует 39 градусов в радианы, а не 39 в радианах.   -  person infixed    schedule 26.04.2016
comment
да, но 39 в радианах равно 0,680678408, что при использовании в уравнении дает 0,017395421, а не 0,921504858323, как питон выплевывает   -  person user6240030    schedule 26.04.2016
comment
используя это в python: (sin(radians(39))*41)/28 дает: 0.921504858323 используя это в python: (sin(степени(39))*41)/28 дает: -1.11258224646 Они оба неверны   -  person user6240030    schedule 26.04.2016
comment
sin( 0,680678408 градусов) *41/28 равно 0,01739542130717132238696513224594. ваша функция sin() принимает единицы измерения градусов   -  person infixed    schedule 26.04.2016


Ответы (2)


Объяснение в различии интерпретации слов «градусы» и «радианы» между google и python.

  1. В python эти 2 функции для преобразования из одной единицы в другую:

    • math.degrees(x) - Convert angle x from radians to degrees.
    • math.radians(x) — конвертирует угол x из градусов в радианы.

Чтобы оценить выражение «float (sin (радианы (39)) * 41/28)», python преобразует угол 39 градусов в радианы (0,680678), затем вычисляет sin (x), который возвращает синус x радиан, поэтому мы получим sin (39) градус)*41/28.

  1. Google использует 2 слова для уточнения единицы измерения, а не для преобразования. для оценки «sin (степени (39)) * 41/28» Google понимает это как «sin (39 градусов) * 41/28», поэтому он не конвертирует единицы между радианами и градусами. Это просто вычисление синуса 39 градусов.
person simon    schedule 26.04.2016

Использовать этот

    >> math.sin(math.radians(39))*41/28
    0.9215048583229761
person Rahul Verma    schedule 04.07.2019