Ai đó có thể cho tôi biết làm thế nào tôi có thể chọn một số số ngẫu nhiên khác nhau từ một mảng cùng một lúc? Ví dụ, có một mảng dài int. Tôi muốn chọn 7 con số từ nó. Tất cả các số không được giống nhau và sắp xếp chúng theo chuỗi tăng.Java: chọn một vài số ngẫu nhiên khác nhau từ mảng trong một thời gian
Random random = new Random();
int a = mixColor[random.nextInt(mixColor.length)];
int b = mixCoor[random.nextInt(mixCoor.length)];
int c = mixCoor[random.nextInt(mixCoor.length)];
int d = mixCoor[random.nextInt(mixCoor.length)];
int e = mixCoor[random.nextInt(mixCoor.length)];
while(b!=c && c!=d && b!=d) {
b = mixCoor[random.nextInt(mixCoor.length)];
c = mixCoor[random.nextInt(mixCoor.length)];
d = mixCoor[random.nextInt(mixCoor.length)];
}
mixColor[]
và mixCoor[]
là các mảng dài. Tôi có thể làm theo cách này, nhưng nếu tôi muốn chọn nhiều con số hơn thì điều này sẽ rất phức tạp. Và tôi cũng cần sắp xếp chúng. Ai đó có ý tưởng hay?
Tùy thuộc vào bộ sưu tập của bạn lớn như thế nào, bạn có thể sử dụng trộn và sau đó chọn nhiều phần tử đầu tiên theo yêu cầu. Bạn có thể muốn điểm chuẩn này - bộ sưu tập của bạn có thể đủ lớn và có thể làm chậm quá trình thu thập, sau đó hủy bỏ sự đơn giản mà bạn thoát khỏi điều này. Dưới đây là thông số cho [shuffle] (http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Collections.html#shuffle%28java.util.List%29) –
Tốt hơn cách sẽ là sử dụng một số ngẫu nhiên '' và xem danh sách đã chọn đã có số ở chỉ mục được tạo ra chưa. Sau đó sắp xếp bằng cách sử dụng 'Bộ sưu tập ' – Jon