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

tr c a

ị ủ n đ c chia cho 2. N u l , giá tr đ c thay th b i 3

ượ

ế ẻ

ị ượ

ế ở n+1. Ch ng h n, n u giá tr ban đ u (t c đ i

ế

ứ ố

s đ

c truy n vào

ố ượ

sequence) b ng 3, thì k t qu là ta có dãy 3, 10, 5, 16, 8, 4, 2, 1.

ế

Vì đôi khi n tăng và đôi khi gi m, nên s không có cách ch ng minh nào d th y ràng cu i cùng

ễ ấ

n s đ t

ẽ ạ

đ n 1, hay ch

ng trình s k t thúc. V i m t s giá tr đ c bi t c a

ế

ươ

ẽ ế

ộ ố

ị ặ

ệ ủ n, ta có th ch ng minh đ c s k t

ể ứ

ượ ự ế

thúc đó. Ch ng h n, n u giá tr kh i đ u là m t s lũy th a c a hai, thì giá tr c a

ế

ở ầ

ộ ố

ừ ủ

ị ủ n s luôn ch n qua

m i l n l p, cho đ n khi ta thu đ

c 1. Ví d tr

c s k t thúc v i m t dãy nh v y v i giá tr ban đ u

ỗ ầ ặ

ế

ượ

ụ ướ ẽ ế

ư ậ ớ

b ng 16.

Ngoài nh ng giá tr đ c bi t, thì m t câu h i thú v là li u ta có th ch ng minh đ

c r ng đo n ch

ng

ị ặ

ể ứ

ượ ằ

ươ

trình trên có k t thúc v i

ế

t t c

ấ ả nh ng giá tr c a n hay không. Cho đ n gi , ch a ai có th ch ng minh

ị ủ

ế

ư

ể ứ

ho c bác b nó! B n hãy tìm thêm thông tin

http://en.wikipedia.org/wiki/Collatz_conjecture.

7.3 B ng s li u

ố ệ

M t trong nh ng công vi c thích h p v i dùng vòng l p, đó là phát sinh ra b ng s li u. Tr

c khi máy

ố ệ

ướ

tính tr nên ph bi n, m i ng

i đã ph i tính tay các phép logarit, sin, cosin, và nh ng hàm toán h c

ổ ế

ườ

khác.

Đ đ n gi n hóa vi c này, sách toán th

ng in kèm nh ng b ng dài li t kê giá tr các hàm nói trên. Vi c

ể ơ

ườ

t o ra các b ng nh v y r t ch m và nhàm chán, và d m c ph i nhi u l i.

ư ậ ấ

ễ ắ

ề ỗ

Khi máy tính xu t hi n, đã có nh ng ph n ng ban đ u ki u nh : “Đi u này th t tuy t! Gi ta có th

ả ứ

ư

dùng máy tính đ t o ra các b ng, vì v y s không có l i.” Đi u này tr nên (g n nh là) s th t nh ng

ể ạ

ậ ẽ

ư

ự ậ

ư

v n ch a đ ng t m nhìn h n h p. Không lâu sau đó, máy tính và máy b túi đã xu t hi n tràn lan và

b ng s tr nên l i th i.

ố ở

, g n nh v y. Có nh ng phép tính mà máy tính l y con s t b ng đ có giá tr g n đúng, r i th c hi n

Ừ ầ

ư ậ

ố ừ ả

ị ầ

tính toán nh m c i thi n k t qu g n đúng này. tr

ng h p khác, có nh ng l i n m ngay b ng s ,

ế

ả ầ

Ở ườ

ỗ ằ

ở ả

đ

c bi t đ n nhi u nh t là b ng mà máy Intel Pentium đã dùng đ th c hi n phép chia v i s có d u

ượ

ế ế

ể ự

ớ ố

ph y đ ng.

M c dù b ng loga không còn h u d ng nh x a, song nó v n dùng đ

c làm ví d v tính l p. Ch

ng

ư ư

ượ

ụ ề

ươ

trình sau in ra m t dãy các s c t bên trái cùng v i giá tr logarit c a chúng c t ph i:

ố ở ộ

ở ộ

double

x = 1.0;

while

(x < 10.0) {

System.out.println(x +

" "

+ Math.log(x));

x = x + 1.0;

}

K t qu c a ch

ng trình này là:

ế

ả ủ

ươ

1.0 0.0

2.0 0.6931471805599453

3.0 1.0986122886681098

4.0 1.3862943611198906