package test.pattern;
import java.util.*;
public class RandomRange {
public static void main(String args[]){
System.out.println("Random Range Start!");
Random ran = new Random(System.currentTimeMillis());
//range 배열에 들어가는 값들이 가중치가 된다. 1.5배 이런식으로는 안됨.
//만일 int range[] = {10, 10, 10, 10, 10, 10, 10, 10, 10, 10,}; 이면 균일 확률
int range[] = {25000, 7000, 450, 30000, 100, 27430, 10000, 19, 1};
int rangeCum[] = new int[range.length];
int tempCum=0;
for(int i=0;i<range.length;i++){
tempCum += range[i];
rangeCum[i] = tempCum;
}
int a = 0, b=0, c=0, d=0, e=0, f=0, g=0, h=0, i=0;
for(int z=0;z<100000;z++){
int dom = ran.nextInt(rangeCum[range.length -1])+1;
if(dom > 0 && dom <= rangeCum[0] ){
a++;
// code = ""; //하이퍼미트론강화제
}else if(dom > rangeCum[0] && dom <= rangeCum[1]){
b++;
// code = ""; //경험치
}else if(dom > rangeCum[1] && dom <= rangeCum[2]){
c++;
// code = ""; //로스트파츠B
}else if(dom > rangeCum[2] && dom <= rangeCum[3]){
d++;
// code = ""; //미트론연료
}else if(dom > rangeCum[3] && dom <= rangeCum[4]){
e++;
// code = ""; //기가스쿠폰
}else if(dom > rangeCum[4] && dom <= rangeCum[5]){
f++;
// code = ""; //카체이스
}else if(dom > rangeCum[5] && dom <= rangeCum[6]){
g++;
// code = ""; //만미토
}else if(dom > rangeCum[6] && dom <= rangeCum[7]){
h++;
// code = ""; //백만미토
}else if(dom > rangeCum[7] && dom <= rangeCum[8]){
i++;
// code = ""; //크롬휠영구
}
}
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("c = " + c);
System.out.println("d = " + d);
System.out.println("e = " + e);
System.out.println("f = " + f);
System.out.println("g = " + g);
System.out.println("h = " + h);
System.out.println("i = " + i);
}
}
'취미, 일기, 생각들 > 아라리오' 카테고리의 다른 글
전각 반각 구분하기 (0) | 2008.12.09 |
---|---|
20080619정기점검 Check 사항 (0) | 2008.06.18 |