, поэтому у меня есть довольно большие числа для работы, и мне нужен способ вычисления квадратного корня из заданного «длинного».Как вычислить квадратный корень из «длинного»
я не могу использовать Math.Sqrt (х), как это только для двойников
, поэтому у меня есть довольно большие числа для работы, и мне нужен способ вычисления квадратного корня из заданного «длинного».Как вычислить квадратный корень из «длинного»
я не могу использовать Math.Sqrt (х), как это только для двойников
идут брось:
Math.sqrt((double)x)
Вам не нужен бросок. Java будет использовать 'long' для' double', не сообщая. – ajb
Вы можете извлечь один бит в то время, как показано Withthis программы C: http://www.realitypixels.com/turk/opensource/index.html#FractSqrt Предполагается, что у вас есть номер фиксированной точки с 30 дробными битами. Если у вас есть 0 дробных бит, то бит 2N бит будет иметь N бит-квадратный корень, достигнутый установкой числа до 15.
Хмм. Итак, вы беспокоитесь о потере точности? Насколько это значимо? – Thilo
Вы пытались использовать 'Math.sqrt (x)'? Что случилось? – ajb
Связанный (о BigInteger): http://stackoverflow.com/questions/4407839/how-can-i-find-the-square-root-of-a-java-biginteger – Thilo