JAVA/JAVA Theory
[JAVA] 11. Java.lang.Math.random() & Java.util.Random
쟌쥰
2019. 11. 16. 20:28
java.lang.Math : Math.random();
- MIN ~ MAX 까지 랜덤 숫자를 출력하자(int)
- (int)(Math.random() * (MAX - MIN + 1)) + MIN;
- START값부터 X 개를 출력하자(int)
- (int)(Math.random() * X) + START;
java.util.Random : Random r = new Random();
- 0~NUM-1 까지 출력하자
- r.nextInt(NUM); // 0 <= r.nextInt(argument) < argument
- START값부터 X개를 출력하자
- r.nextInt(X) + START;
다음 코드를 통해 사용법을 살펴보겠다.
package com.test02;
import java.util.Random;
public class MTest01 {
public static void main(String[] args) {
// random01();
//random02();
random03();
}
public static void random01() {
// 0.0 <= Math.random(); < 1.0
double d = Math.random();
System.out.println(d);
}
public static void random02() {
// (int)(Math.random()*(max - min + 1)) + min;
int max = 10;
int min = 5;
int r = (int) (Math.random() * (max - min + 1) + min);
System.out.print(r);
}
public static void random03() {
Random r = new Random();
System.out.println(r.nextInt(10)); //0 <= Random.nextInt(argument) < argument
}
}
예제1) 정답 :
package com.test02;
import java.util.Random;
import java.util.Scanner;
public class RandomCube {
/*
* 1. 5*5 숫자를 출력하자 (0~9 사이의 랜덤한 숫자 하나하나를)
*
* 2. 만들어진 전체 숫자의 평균을 출력하자.
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("cube의 크기를 입력하세요! : ");
int size = sc.nextInt();
System.out.println("전체 숫자의 평균은 : " + (double) randcube(size) / (size * size) + " 입니다.");
}
public static int randcube(int size) {
int sum = 0;
Random r = new Random();
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
int num = r.nextInt(10);
System.out.print(num + " ");
sum += num;
}
System.out.println();
}
return sum;
}
}