Kotlin에서 제곱 연산을 하는 방법
Kotlin에서 제곱 연산을 하려면 kotlin.math 패키지의 pow 연산을 쓰면 된다. pow연산은 Double, Float두가지 자료형에 대해 지원된다.
Double 자료형 제곱 연산
Double 자료형은 Double이나 Int를 인자로 받아 제곱 연산(pow)을 수행할 수 있으며, 반환 자료형은 모두 Double이다.
public actual inline fun Double.pow(x: Double): Double
public actual inline fun Double.pow(n: Int): Double
예를 들어 아래와 같이 연산을 진행할 수 있다.
println(2.0.pow(3.0)) // 8.0 출력
println(2.0.pow(3)) // 8.0 출력
Float 자료형 제곱 연산
Float 자료형은 Float이나 Int를 인자로 받아 제곱 연산을 수행하며, 반환 자료형은 모두 Float이다.
public actual inline fun Float.pow(x: Float): Float
public actual inline fun Float.pow(n: Int): Float
예를 들어 아래와 같이 연산을 수행할 수 있다.
println(2.0f.pow(3.0f)) // 8.0 출력
println(2.0f.pow(3)) // 8.0 출력
하지만, 내부적으로 Float으로 제곱연산을 하는 것은 Double로 제곱연산을 하는 것과 같다. 4byte로 이루어진 실수인 Float을 8byte로 이루어진 Double로 형변환 후 연산을 수행하기 때문이다.
public actual inline fun Float.pow(x: Float): Float = nativeMath.pow(this.toDouble(), x.toDouble()).toFloat()
Int에 대해 제곱 연산하기
위의 Float에 대한 pow연산을 응용해 Int에 대한 제곱 연산또한 수행이 가능하다. 단순히 toDouble을 사용해 Double로 형변환 한 후 제곱을 수행하면 된다.
println(2.toDouble().pow(3)) // 8.0 출력
Kotlin에서 제곱근 연산을 하는 방법
sqrt 함수를 이용하는 방법
Kotlin에서 제곱근 연산을 하는 방법은 sqrt 함수를 사용하면 된다. sqrt는 square root의 축약어로, 인자로는 Double이나 Float을 받는다.
public actual inline fun sqrt(x: Double): Double = nativeMath.sqrt(x)
public actual inline fun sqrt(x: Float): Float = nativeMath.sqrt(x.toDouble()).toFloat()
예를 들어 아래와 같이 4.0에 대해 제곱근 연산을 수행할 수 있다.
println(sqrt(4.0)) // 2.0 출력
pow 함수를 이용하는 방법
제곱(pow) 연산을 활용해 제곱근을 구할 수도 있다. 1/2 제곱 연산을 수행하면 그것이 바로 제곱근이기 때문이다.
val number = 4.0
val squareRoot = number.pow(1.0 / 2.0) // 2
Kotlin에서 세제곱근 연산을 하는 방법
cbrt 함수를 사용하는 방법
Kotlin에서 세제곱근 연산을 하기 위해서는 cbrt는 cube root의 축약어로 영어로 세제곱근을 뜻한다. 인자로는 Double 혹은 Float을 받는다.
public actual inline fun cbrt(x: Double): Double = nativeMath.cbrt(x)
public actual inline fun cbrt(x: Float): Float = nativeMath.cbrt(x.toDouble()).toFloat()
예를 들어 아래와 같이 8.0에 대해 세제곱근 연산을 수행할 수 있다.
println(cbrt(8.0)) // 2.0 출력
pow 함수를 사용하는 방법
제곱(pow) 연산을 활용해 세제곱근을 구할 수도 있다. 1/3 제곱 연산을 수행하면 그것이 바로 세제곱근이기 때문이다.
val number = 27.0
val cubeRoot = number.pow(1.0 / 3.0) // 3