Bạn giải thích kĩ hơn giúp tôi dòng này được không? Tôi vẫn chưa hiểu tại sao lại phải cộng thêm 1 nếu nhỏ hơn 5.Gửi bởi HYen17
Bạn giải thích kĩ hơn giúp tôi dòng này được không? Tôi vẫn chưa hiểu tại sao lại phải cộng thêm 1 nếu nhỏ hơn 5.Gửi bởi HYen17
Hàm RND() tạo ra số ngẫu nhiên trong (0;1) (không bằng 1 được) nên để tạo số nguyên ngẫu nhiên từ 0 đến 9 thì dùng int(10*Rnd) chứ không phải 9.
Em test thử code này thấy kết quả tuyệt vời luôn anh ạ!Gửi bởi Hau151978
Mình chưa hiểu code này, đang online bằng điện thoại thôi. Bài trên mình viết do bác HaiYen nói số ngẫu nhiên từ 0 đến 9, thực tế chỉ từ 0 đến 8 thôi. Nếu tác giả nhầm chỗ này thì có thể code không bao giờ ra chuỗi có số 1 ở cuối (có thể thôi vì code khó hiểu quá).Gửi bởi chuot0106
Vì lệnh trên nó có thể tạo ra số 0, nên cần cộng thêm 1 để khỏi bị lỗi cho dòng lệnh kế tiếp dưới nó;
Bạn giải thích kĩ hơn giúp tôi dòng này được không? Tôi vẫn chưa hiểu tại sao lại phải cộng thêm 1 nếu nhỏ hơn 5.
Thực ra dòng lệnh đó chỉ cần: Nếu là 0 thì cộng thêm 1 là đủ
Nếu ta đem 0.99999999999999 * 9 =?
Mình chưa hiểu code này, đang online bằng điện thoại thôi. Bài trên mình viết do bác HaiYen nói số ngẫu nhiên từ 0 đến 9, thực tế chỉ từ 0 đến 8 thôi. Nếu tác giả nhầm chỗ này thì có thể code không bao giờ ra chuỗi có số 1 ở cuối (có thể thôi vì code khó hiểu quá).
Cảm ơn bạn tôi đã hiểu rồi!Gửi bởi HYen17
Đố ai làm được bài này trong 1 vòng lập!
Ẹc... Ẹc...
Nói như vậy chắc chắn thầy đã có đáp án rồi!Gửi bởi ndu96081631
Bác thử với 2 sub sau sẽ thấy. 2 sub lấy các số nguyên 0 - 9 sau 1000000 vòng lặp, ghi kết quả số các số 0 -9 vào các ô A1 - A10 và B1 - B10. Sub Test9() dùng INT(9*RND) và su test10() dùng INT(10*RND). Kết quả sub test9 không ra số 9 nào.Gửi bởi HYen17
Mã:Sub test9() Dim i&, n&, arr(0 To 9) As Long Randomize For i = 1 To 1000000 n = Int(9 * Rnd) arr(n) = arr(n) + 1 Next For i = 0 To 9 Cells(i + 1, 1) = arr(i) Next End Sub Sub test10() Dim i&, n&, arr(0 To 9) As Long Randomize For i = 1 To 1000000 n = Int(10 * Rnd) arr(n) = arr(n) + 1 Next For i = 0 To 9 Cells(i + 1, 2) = arr(i) Next End Sub
Trên cửa sổ "Immediate", nếu ta nhập
?0.9999*9\1
Nó cho ta kết quả 9 tròn trịa đó bạn.
Mà thật ra không có số 9 xuất hiện lần nào trong 65500 lần lặp cũng không ảnh hưởng gì đến hòa bình thế giới cả.
[IMG]images/smilies/a44.gif[/IMG] [IMG]images/smilies/a44.gif[/IMG] [IMG]images/smilies/a44.gif[/IMG]