Đây là một câu hỏi Java khá đơn giản (mặc dù có thể áp dụng cho tất cả các chương trình):
Math.random()
trả về một số từ 0 đến 1
Nếu tôi muốn trả về một số nguyên từ 0 đến trăm, tôi sẽ làm:
(int) Math.floor(Math.random() * 101)
Từ một đến trăm, tôi sẽ làm:
(int) Math.ceil(Math.random() * 100)
Nhưng nếu tôi muốn có được một số từ ba đến năm thì sao? Nó sẽ giống như tuyên bố sau đây:
(int) Math.random() * 5 + 3
Tôi biết về nextInt()
ở java.lang.util.Random
. Nhưng tôi muốn học cách làm điều này với Math.random()
.
Math.ceil
là sai, nó cho kết quả sai khi Math.random()
trả về 0
.
(int)Math.floor(Math.random()*3) + 3