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

đ thay đ i các vòng l p; ch

ng trình s ch y đ

c đúng v i m i kích c m ng khác nhau.

ươ

ẽ ạ

ượ

ỡ ả

for

(

int

i = 0; i < a.length; i++) {

b[i] = a[i];

}

L n cu i cùng mà ph n thân c a vòng l p đ

c th c thi,

ượ

i s là

ẽ a.length - 1, ch s c a ph n t cu i.

ỉ ố ủ

ầ ử ố

Khi i b ng v i

ớ a.length, đi u ki n s không th a mãn và ph n th n s không đ c th c thi. Đây là đi u

ệ ẽ

ầ ẽ

ượ

t t, vì s có bi t l đ

c phát ra. Đo n mã này gi thi t r ng m ng

ệ ệ ượ

ế ằ

ả b ph i có b ng s ph n t , ho c

ầ ử

nhi u h n so v i

ơ

ớ a.

12.6 S ng u nhiên

Đa s các ch

ng trình máy tính đ u làm cùng m t công vi c m i khi nó đ

c th c thi; ch

ng trình

ươ

ượ

ươ

nh v y đ

c g i là có tính

ư ậ

ượ ọ

t t đ nh

. Thông th

ng, t t đ nh là tính ch t t t, vì ta luôn trông đ i cùng

ườ

ấ ị

ấ ố

m t phép tính s ch cho m t k t qu . Song có nh ng ch

ng trình ng d ng mà ta mu n k t qu ph i

ẽ ỉ

ộ ế

ươ

ế

không đoán tr

c đ

c. M t ví d hi n nhiên là các trò ch i đi n t , song cũng có nh ng ng d ng khác

ướ ượ

ụ ể

ơ

ệ ử

n a.

Đ m t ch

ng trình th c s

ể ộ

ươ

ự ự phi t t đ nh

hóa ra l i không d chút nào, song ít nh t v n có nh ng cách

ấ ẫ

làm ch

ng trình có v nh phi t t đ nh. M t cách làm trong s đó là vi c phát sinh nh ng s ng u

ươ

ư

ấ ị

nhiên và dùng nó đ quy đ nh k t qu c a ch

ng trình. Java có m t ph

ng th c đ phát sinh ra các

ế

ả ủ

ươ

ươ

ứ ể

s

gi ng u nhiên

, v n không th c s ng u nhiên, nh ng s dùng đ

c cho m c đích ta c n.

ự ự

ư

ượ

Hãy đ c tài li u v ph

ng th c

ươ

ứ random trong l p

ớ Math. Giá tr tr l i là m t

ị ả ạ

ộ doublen m gi a 0.0 và

1.0. Chính xác là, nó l n h n ho c b ng 0.0 và nh h n 1.0. M i l n kích ho t

ơ

ặ ằ

ỏ ơ

ỗ ầ

ạ random b n s nh n

ạ ẽ

đ

c con s ti p theo trong dãy s gi ng u nhiên. Đ th y đ

c m t m u c a dãy ng u nhiên, hãy ch y

ượ

ố ế

ố ả

ể ấ

ượ

ẫ ủ

vòng l p sau:

for

(

int

i = 0; i < 10; i++) {

double

x = Math.random();

System.out.println(x);

}

Đ phát sinh m t s

ộ ố double gi a 0.0 và m t gi i h n trên nh

ớ ạ

ư high, b n có th nhân

x v i

ớ high.

12.7 M ng các s ng u nhiên

B ng cách nào đ phát sinh m t s nguyên ng u nhiên gi a

ộ ố

ữ low và high? N u ph ng

ế

ươ

th c

ứ randomInt b n vi t đã chính xác, thì m i giá tr trong kho ng t

ế

ừ low lên đ n

ế high-1 ph i có cùng

xác su t xu t hi n. N u b n phát sinh m t dãy s r t dài, thì m i giá tr ph i xu t hi n ít nh t là có s

ế

ố ấ

l n x p x nhau.

M t cách ki m tra ph

ng th c v a vi t là phát inh r t nhi u s ng u nhiên, l u tr chúng vào m t

ươ

ứ ừ

ế

ề ố

ư

m ng, r i đ m s l n t ng giá tr xu t hi n.

ồ ế

ố ầ ừ

Ph

ng th c sau nh n m t đ i s duy nh t là kích th

c c a m ng. Ph

ng th c có nhi m v huy đ ng

ươ

ộ ố ố

ướ ủ

ươ

m t m ng s nguyên m i, đi n vào nh ng giá tr ng u nhiên, r i tr l i tham chi u đ n m ng m i đi n.

ồ ả ạ

ế

ế

public static int

[] randomArray(

int

n) {

int

[] a =

new int

[n];

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.