ln în Kotlin

Logaritmi: ln (natural, baza e), log10 (baza 10), log2 (baza 2); exp calculează e la puterea x.

Sintaxă
import kotlin.math.*
fun ln(x: Double): Double
fun log10(x: Double): Double
fun log2(x: Double): Double
fun log(x: Double, base: Double): Double
fun exp(x: Double): Double

Ce face ln

Logaritmul răspunde la întrebarea „la ce putere trebuie ridicată baza ca să obțin x?”. log10(1000.0) este 3.0, pentru că 10³ = 1000. log2(8.0) este 3.0, iar ln(x) folosește baza e. Pentru o bază oarecare există log(x, baza).

exp(x) este operația inversă lui ln: calculează ex, deci exp(ln(5.0)) dă înapoi aproximativ 5. Logaritmul lui 0 este minus infinit (-Infinity), iar al unui număr negativ este NaN.

Parametri

Parametru Descriere
x Numărul (pozitiv) pentru logaritm sau exponentul pentru exp.
base Pentru log: baza logaritmului.

Ce returnează

Un Double.

Exemple

Exemplul 1: Logaritmi în diferite baze

Fiecare rezultat este exponentul la care trebuie ridicată baza. log(81.0, 3.0) dă 4.000000000000001 în loc de 4, din cauza preciziei limitate a lui Double. Logaritmul lui 0 este minus infinit.

import kotlin.math.E
import kotlin.math.ln
import kotlin.math.log
import kotlin.math.log10
import kotlin.math.log2

fun main() {
    println(log10(1000.0))
    println(log2(1024.0))
    println(ln(E))
    println(log(81.0, 3.0))
    println(log10(0.0))
}

Rezultat

3.0
10.0
1.0
4.000000000000001
-Infinity

Exemplul 2: Câte cifre are un număr

Numărul de cifre al lui n este floor(log10(n)) + 1.

import kotlin.math.floor
import kotlin.math.log10

fun main() {
    for (n in listOf(7, 42, 2025, 1000000)) {
        val cifre = floor(log10(n.toDouble())).toInt() + 1
        println("$n are $cifre cifre")
    }
}

Rezultat

7 are 1 cifre
42 are 2 cifre
2025 are 4 cifre
1000000 are 7 cifre

Exemplul 3: Creștere exponențială cu exp

O populație de bacterii crește continuu cu 50% pe oră: N = N0 × e^(0.5 × t).

import kotlin.math.exp
import kotlin.math.roundToInt

fun main() {
    val initial = 100.0
    for (ore in 0..4) {
        println("După $ore ore: ${(initial * exp(0.5 * ore)).roundToInt()} bacterii")
    }
}

Rezultat

După 0 ore: 100 bacterii
După 1 ore: 165 bacterii
După 2 ore: 272 bacterii
După 3 ore: 448 bacterii
După 4 ore: 739 bacterii

Greșeli frecvente

  • Cauți log(x) pentru logaritmul natural. În Kotlin se numește ln(x); log cere și baza.
  • Calculezi logaritmul unui Int direct. Funcțiile primesc Double; folosește toDouble().

Comenzi înrudite

  • sqrt: sqrt calculează rădăcina pătrată, pow ridică la putere (2.0.pow(3) = 8.0), hypot dă ipotenuza.
  • PI: Constantele matematice π (PI, raportul dintre circumferință și diametru) și e (E, baza logaritmului natural).
  • round: Rotunjesc un număr zecimal: round la cel mai apropiat întreg, floor în jos, ceil în sus, truncate taie zecimalele.