2016-03-09 2 views

ответ

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, вы можете использовать следующее отношение изменения базы для логарифмов

enter image description here

Следовательно, для, например, вычисления 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" 
+0

И как рассчитать LOG3 (9.0)? – Zentopia

+0

@Utopia Обновлен мой ответ, чтобы включить общий случай. – dfri

+0

очень подробно. Спасибо – Zentopia