2013-11-13 5 views
0

Мне было интересно, как написать код с квадратным корнем внутри квадратного корня. Это то, что у меня есть до сих пор:Квадратный корень внутри квадратного корня python

number=float(input("Please enter a number: ")) 
square = 2*number**(1/2)**(1/3) 
print(square) 

Но это не так, поскольку я получаю другое число от калькулятора.

+1

Поднятие чего-то (1/3) является корнем куба, а не квадратным корнем. (a^(1/2))^(1/2) эквивалентно a^(1/4). Таким образом, вы можете просто сделать четвертый корень. – hankd

+0

Возможно, проверьте порядок операций, что именно вы пытаетесь вычислить? http://docs.python.org/2/reference/expressions.html#operator-precedence – CDspace

+0

Что такое вывод python, и что выводит ваш калькулятор? Это поможет указать, в чем проблема. – SethMMorton

ответ

4

Импорт math и использовать math.sqrt(math.sqrt(number))

import math 
number=float(input("Please enter a number: ")) 
square = math.sqrt(math.sqrt(number)) 
print(square) 
+1

Обратите внимание, что один из них является кубическим корнем –

+1

@DonaldMiner Непонятно, была ли эта ошибка ошибкой OP, или если их описание неверно. Если мы расскажем об этом, это будет правильно. Если мы пойдем по коду, нам понадобится функция корня куба. В любом случае, ОП должен уточнить. – SethMMorton

2

Похоже, что это делает квадратный корень (т.е. 1/2) из 1/3 и последующего применения к number. Вы захотите принудительно выполнить порядок операций, так как он оценивает оператор экспоненты справа налево.

square = 2*(number**(1/2))**(1/3) 

Добавляя скобку, вы вынуждаете его взять квадратный корень, а затем кубический корень.


Вы используете Python3, но и для будущих читателей, python2 будет оценивать 1/2 и 1/3 к 0. Для изменения, которые вы будете использовать поплавки вместо:

square = 2*(number**(1.0/2.0))**(1.0/3.0) 
+0

'1/2' и' 1/3' являются '0' в Python2. –

+0

Он использует Python 3, очевидно из инструкции 'print'. Но да, я расскажу о python2 –

+0

@DonaldMiner Это не обязательно очевидно, потому что они могут использовать 'from __future__ import print_function', а не' from __future__ import division' – SethMMorton

2

Если вы хотите, чтобы найти квадратный корень квадратного корня из числа вы можете увидеть, используя некоторую алгебру мы можем видеть, что ((x)^0.5)^0.5) упрощает до x^(0.25)

Таким образом, вы можете сделать x**(0.25)

или вы можете сделать следующее:

import math 
math.sqrt(math.sqrt(x)) 

Еще одна вещь, в ваш код, который вы говорите:

square = 2*number**(1/2)**(1/3) 

и в названии вы говорите «Квадратный корень внутри квадратного корневого питона». Это указывает на то, что вы, возможно, сделали либо опечатку в своем коде, либо ошибку, назвав название вашего вопроса. Если вы хотите найти квадратный корень из квадратного корня, то моих предложений выше должно быть достаточно для этого.

+0

Обратите внимание, что один из них является кубическим корнем –

+0

Да, я видел, что в заголовке вопроса и описании оба говорят о квадратный корень из квадратного корня, а не корень куба, поэтому я предположил, что это было то, что нужно. Только что сделал редактирование, чтобы ответить на этот вопрос. – shuttle87