Самый простой способ найти квадратный корень в Swift?
Я пытался выяснить, как программно найти квадратный корень из числа в Swift. Я ищу простейший возможный способ выполнить с помощью небольшого кода. Я сейчас, вероятно, довольно легко выполнить, но не могу понять, как это сделать.
Приветствуются любые материалы или предложения.
Заранее спасибо
Ответы
Ответ 1
В Swift 3 протокол FloatingPoint
имеет метод squareRoot()
. Оба Float
и Double
соответствуют протоколу FloatingPoint
. Итак:
let x = 4.0
let y = x.squareRoot()
примерно так же просто, как и он.
В основе сгенерированного кода должна быть одна машинная инструкция x86, без перехода на адрес функции, а затем возврат, потому что это переводится в LLVM, встроенный в промежуточный код. Таким образом, это должно быть быстрее, чем вызов функции библиотеки C sqrt
, которая действительно является функцией, а не только макросом для кода сборки.
В Swift 3 вам не нужно ничего импортировать, чтобы сделать эту работу.
Ответ 2
Обратите внимание, что sqrt() потребует импорта хотя бы одного из:
- UIKit
- Cocoa
- Вы можете просто импортировать Дарвина вместо полного Cocoa
- Фонд
Ответ 3
Первый импорт import UIKit
let result = sqrt(25) // equals to 5
Тогда ваш результат должен быть в переменной "result"
Ответ 4
Функция sqrt, например sqrt(4.0)
Ответ 5
это должно работать для любого рута,
2 - ∞, но вам, вероятно, все равно:
func root(input: Double, base: Int = 2) -> Double {
var output = 0.0
var add = 0.0
while add < 16.0 {
while pow(output, base) <= input {
output += pow(10.0, (-1.0 * add))
}
output -= pow(10.0, (-1.0 * add))
add += 1.0
}
return output + 0.0
}