자바 랜덤 함수에 가중치 질문입니다
현재 로또 프로그램을 만들고 있는데여 1~45숫자에서 난수를뽑고 그난수에다가이제 가중치를줘서
1~10 에서 만약 2,4,5 에 가중치를 주고 싶으면 무슨방법으로 줘야할까요?
구글링해보니까 map이랑hashmap 을쓰는거같던데 더자세한걸 찾아보려고해도 잘안나오네요 ㅜㅜ
public void makeNum() {
lotNum = new int[7];
for(int i=0; i<7; i++) {
lotNum[i] = (int) (Math.random()*45) +1;
for(int j=0; j<i; j++) {
if(lotNum[i] == lotNum[j]) {//중복제거
lotNum[i] = (int) (Math.random()*45) +1;
j = 0;
일단이렇게 짜놨는데 여기에 가중치를 주려면 어떻게해야할까요 ?
55글자 더 채워주세요.
1개의 답변이 있어요!
Random 변수와 PriorityQueue 큐를 사용하는 것이 좋다고 봅니다.
PriorityQueue 사용 방법http://asuraiv.blogspot.com/2015/11/java-priorityqueue.html
Random 변수를 사용하는 방법
위 2개의 예제를 참조해서 작성하면
Comparator의 compare() 메소드 내에 가중치를 주려는 숫자를 받아서 비교해서 그 결과를 돌려주는 함수를 작성하셔서 사용하면 되지 않을까 합니다.