Я хочу рассчитать log(2)8
в Swift без модулей импорта. Я не могу найти какую-либо функцию в документе.Имеет ли Swift встроенную функцию логарифма?
7
A
ответ
14
Вы можете использовать методы log2(:Double)
или log2f(:Float)
из Xcode Tools. импорта UIKit
или Foundation
:
func log2(x: Double) -> Double
func log2f(x: Float) -> Float
например, в Playground
print(log2(8.0)) // 3.0
(Edit дополнение WRT свой комментарий ниже)
Если вы хотите, чтобы вычислить вашу пользовательскую базу log, вы можете использовать следующее отношение изменения базы для логарифмов
Следовательно, для, например, вычисления log3
, вы могли бы написать следующую функцию
func log3(val: Double) -> Double {
return log(val)/log(3.0)
}
print(log3(9.0)) // "2.0"
Или просто функцию журнала на заказ базы:
func logC(val: Double, forBase base: Double) -> Double {
return log(val)/log(base)
}
print(logC(9.0, forBase: 3.0)) // "2.0"
print(logC(16.0, forBase: 4.0)) // "2.0"
И как рассчитать LOG3 (9.0)? – Zentopia
@Utopia Обновлен мой ответ, чтобы включить общий случай. – dfri
очень подробно. Спасибо – Zentopia