Language/JAVA

[JAVA 기초 이론] 랜덤 생성 Random

오류나면꽥꽥 2023. 5. 11. 18:33

Random rand=new Random();

-> ctrl + shift + 0 : 자동임포트

-> 자료형 변수명 = rand.nextInt();

 

ex)

자료형 : int N=rand.nextInt(10)+1;  -> 1~10까지 랜덤수

 

 

Random rand=new Random();
int randNum=rand.nextInt(3)+3; -> 3~5까지 랜덤 자리수
int[] data=new int[randNum]; -> 배열 자리 수를 위의 랜덤 자리수로 한다는 의미

 

 

ex)

배열 0~100사이 랜덤수

int[] stu=new int[6];
Random rand=new Random();

for(int i=0;i<stu.length;i++) {
    // stu[i]=랜덤수;
    stu[i]=rand.nextInt(101); // 1~100까지
    System.out.print(stu[i]+" ");
}

 

 

ex)

배열 100~105사이 랜덤수

for(int i=0;i<data.length;i++){
	data[i]=rand.nextInt(6)+100; // data[i] 안의 값을 100~105사이 랜덤수
	System.out.print(data[i]+" ");
}

 

 

 

ex) 심화

점수 랜덤으로 생성

1. 생성한 점수 평균

2. 평균을 넘긴 학생

3. 6등의 번호

4. 짝수번째 학생들의 총점

5. 평균을 못넘긴 학생

package class02;

import java.util.Random;
//자동임포트(C+S+O)

public class Test02 {

	public static void main(String[] args) {

		int[] stu=new int[6];
	
		// 랜덤으로 점수를 생성해보자!
		Random rand=new Random();
	
		for(int i=0;i<stu.length;i++) {
			// stu[i]=랜덤수;
			stu[i]=rand.nextInt(101); // 0~100까지
			System.out.print(stu[i]+" ");
		}
		System.out.println();
		
		

		// 1. 평균점수
		int sum=0; // 총점을 저장할 변수
		for(int i=0;i<stu.length;i++) {
			sum+=stu[i];
		}
		double avg=sum*1.0/stu.length;
		System.out.println("평균: "+avg);

		// 2. 평균을 넘긴 학생수
		// 5. 평균을 못넘긴 학생들의 번호 --->> 변수xxx
		//     : 저장공간을 예상하는 방법
		//     : 나중에 배열을 생성하는 방법
		int num=0; // 평균넘긴학생수를 저장할 변수
		for(int i=0;i<stu.length;i++) {
			if(stu[i] >= avg) { // [내가 보고있는 학생]이 평균을 넘겼어?
				num++;
			}
			else {
				System.out.println((i+1)+"번은 평균점수이하입니다.");
			}
		}
		System.out.println("평균점수이상을 받은 학생수는 "+num+"명");

		// 3. 6등의 번호
		//  --->> [최대값찾기 알고리즘] 활용

		int min=stu[0];
		int minIndex=0;
		for(int i=1;i<stu.length;i++) {
			if(min>stu[i]) {
				min=stu[i];
				minIndex=i;
			}
		}
		System.out.println("6등은 "+(minIndex+1)+"번입니다.");

		// 4. 짝수번째 학생들의 총점
		int res=0;
		for(int i=0;i<stu.length;i++) {
			if(i%2==0) {
				continue;
			}
			res+=stu[i];
		}
		System.out.println("짝수번째 학생들의 총점은 "+res+"점");


	}

}