THINK JAVA: CÁCH SUY NGHĨ NHƯ NHÀ KHOA HỌC MÁY TÍNH - Trang 63

5.0 1.6094379124341003

6.0 1.791759469228055

7.0 1.9459101490553132

8.0 2.0794415416798357

9.0 2.1972245773362196

Nhìn vào nh ng giá tr này, b n có th nói r ng ph

ng th c

ươ

ứ log này dùng c s nào?

ơ ố

Vì các lũy th a c a 2 r t quan tr ng trong ngành khoa h c máy tính, nên ta th

ng mu n l y loga theo

ừ ủ

ườ

ố ấ

c s 2. Đ tính toán, ta có th dùng bi u th c:

ơ ố

log

2

x = log

e

x / log

e

2

Hãy thay câu l nh

ệ print b ng

System.out.println(x +

" "

+ Math.log(x) / Math.log(2.0));

đ cho ra

1.0 0.0

2.0 1.0

3.0 1.5849625007211563

4.0 2.0

5.0 2.321928094887362

6.0 2.584962500721156

7.0 2.807354922057604

8.0 3.0

9.0 3.1699250014423126

Có th th y r ng 1, 2, 4, và 8 là các lũy th a c a 2 vì các giá tr logarit c s 2 c a chúng đ u là nh ng s

ể ấ ằ

ừ ủ

ơ ố

nguyên. N u mu n tìm logarit c a nh ng lũy th a khác c a 2, ta có th s a ch

ng trình trên thành:

ế

ể ử

ươ

double

x = 1.0;

while

(x < 100.0) {

System.out.println(x +

" "

+ Math.log(x) / Math.log(2.0));

x = x * 2.0;

}

Bây gi thay vì c ng thêm m t s v i

ộ ố ớ x trong m i vòng l p (đi u này cho ra dãy c p s c ng), ta đem

ấ ố ộ

nhân m t giá tr v i

ị ớ x (thu đ c

ượ c p s nhân

). K t qu là:

ế

1.0 0.0

2.0 1.0

4.0 2.0

8.0 3.0

16.0 4.0

32.0 5.0

64.0 6.0

B ng logarit có th không còn có ích n a, nh ng v i nhà khoa h c máy tính, vi c nh đ

c các lũy th a

ư

ớ ượ