2016-03-15 5 views
2

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

я не могу использовать Math.Sqrt (х), как это только для двойников

+3

Хмм. Итак, вы беспокоитесь о потере точности? Насколько это значимо? – Thilo

+2

Вы пытались использовать 'Math.sqrt (x)'? Что случилось? – ajb

+0

Связанный (о BigInteger): http://stackoverflow.com/questions/4407839/how-can-i-find-the-square-root-of-a-java-biginteger – Thilo

ответ

-2

идут брось:

Math.sqrt((double)x) 
+1

Вам не нужен бросок. Java будет использовать 'long' для' double', не сообщая. – ajb

0

Вы можете извлечь один бит в то время, как показано Withthis программы C: http://www.realitypixels.com/turk/opensource/index.html#FractSqrt Предполагается, что у вас есть номер фиксированной точки с 30 дробными битами. Если у вас есть 0 дробных бит, то бит 2N бит будет иметь N бит-квадратный корень, достигнутый установкой числа до 15.

Смежные вопросы