Tôi muốn tạo các số ngẫu nhiên, nhưng không muốn các số này nằm trong dãy từ excludeRows
. Đây là mã của tôi.Tạo các số ngẫu nhiên ngoại trừ các giá trị nhất định
public int generateRandom(int start, int end, ArrayList<Integer> excludeRows) {
Random rand = new Random();
int range = end - start +1 - excludeRows.size();
int random = rand.nextInt(range) + 1;
for(int i = 0; i < exclude.size(); i++) {
if(excludeRows.get(i) > random) {
return random;
}
random++;
}
return random;
}
Tôi sử dụng hàm này trong một vòng lặp while và trong mỗi lần lặp tôi thêm một giá trị mới vào excludeRows
. Đôi khi nó trả về các số thuộc về excludeRows
. Có chuyện gì vậy?
'Loại trừ' và' loại trừ' giống nhau không? – Vlad
có, tôi quên đổi tên – user2081119
Trong chức năng này, bạn không thêm số vào 'excludeRows'. Vì vậy, trong giải pháp của tôi, tôi không làm điều đó. Tôi có nên bổ sung nó không? – qben