Polly po-cket
Cộng đồng Java Việt
Cộng đồng java Việt
Thông báo
Chú ý: Sắp tới ADM sẽ cải tiến lại wap, xây dựng thêm mục C, C ++ cho các bạn, các bạn có ý kiến gì thì góp ý cho AD nhá :D
Codej2me xin gửi lời cảm ơn đến: Holyeyed, Java_Editor!, chuonghugo,TVC97, thaian2009, gió(opakul), ironman..., và đặc biệt là forum j2mevn đã giúp Codej2me xây dựng wapsite này!!!
Có nhiều bạn chưa hiểu kĩ về Canvas nha, muốn chạy 1 app nào đó có Canvas thì phải Có Midlet nhá, tìm hiểu tại đây
Chatbox




* Vector và Random

» Nội dung :
Ở bài viết này mình sẽ hướng dẫn các bạn 3 kỹ thuật random thường dùng:
1. Random tự nhiên, có thể trùng nhau.
2. Random có thể trùng nhau nhưng 2 phần tử liên tiếp không trùng nhau.
3. Random không trùng nhau.

Các bạn có thể random các phần tử trong một danh sách theo cách này, ở đây mình sẽ làm trường hợp đơn giản nhất có thể ứng dụng cho những trường hợp random danh sách.
Mình sẽ thực hiện random một dãy 10 số int, xem như random index của một danh sách khoảng 100 phần tử..
Sau khi khởi tạo
Random rd= newRandom();

1. Random tự nhiên, có thể trùng nhau
Bạn sẽ sử dụngrd.nextInt(100);trong trường hợp này thì các số cho kết quả sẽ nằm từ 0-99.
2. Để random tự nhiên có thể trùng nhau nhưng hai phần tử liền kề không trùng nhau.
Đơn giản là ta dùng một biến tạm để lưu giá trị random lần trước, khi random ra một giá trị mới thì kiểm tra, nếu giá trị mới khác giá trị cũ thì sử dụng rồi biến tạm set giá trị bằng giá trị mới.
3. Random không trùng nhau.
Trong trường hợp này sử dụng một Vector, ta sẽ ứng dụng phương thức kiểm tra có chứa object hay không của vector v.contains(iNew) kết quả false thì chúng ta add thêm vào, cuối cùng ta có vector chứa các số không trùng nhau.
Demo
import java.util.Random;
import java.util.Vector;
public class HowToRandom{
/**
* @ paramargs the command line arguments
*/
public static void main(String[]args) {
Random rd= new Random();
//random 10 number bettween 100
System.out.println("random 10 number bettween 100");
for (int i=0;i< 10; i++ ) {
System.out.println("Item "+(i+1)+":"+rd.nextInt(100));
}
//random new item difference from previous random item
int iNewNumber=0,iPrevious= -1;
for (int i=0;i< 10; ) {
iNewNumber=rd.nextInt(100);
if (iNewNumber!=iPrevious){
i++ ;
iPrevious=iNewNumber;
System.out.println("Item "+(i+1)+":"+iNewNumber);
}
}
//random 10 unique number
Vector v= new Vector();
int iNew=0;
for (int i=0;i< 10 ) {
iNew=rd.nextInt(100);
if (!v.contains(iNew)){
i++ ;
v.add(iNew);
System.out.println("Item "+(i+1)+":"+iNew);
}
}
}
}
Thông tin
Hiện có 1 đang Online, 1 visit trong ngày,1 visit trong tháng. Tổng lượt truy cập là 392 lượt.
Liên Hệ - Hổ Trợ
Info Author Admin: Q.Phiên
Phone Author Phone: 01635514395
Hosting By XTGEM.COM
CodeJ2ME© 2014-2015