CodeGym /Java Blog /๋ฌด์ž‘์œ„์˜ /Java.util.Random ํด๋ž˜์Šค
John Squirrels
๋ ˆ๋ฒจ 41
San Francisco

Java.util.Random ํด๋ž˜์Šค

๋ฌด์ž‘์œ„์˜ ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค

Java์˜ java.util.Random ํด๋ž˜์Šค๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

java.util.Random ํด๋ž˜์Šค๋Š” ์˜์‚ฌ ๋‚œ์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค . ์ด ํด๋ž˜์Šค์— ์˜ํ•ด ๊ตฌํ˜„๋œ ๋ฉ”์„œ๋“œ๋Š” int, double ๋ฐ float์™€ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์ž„์˜ ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‚œ์ˆ˜์—๋Š” ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ์œ ํ˜•์ธ ํ†ต๊ณ„์  ๋‚œ์ˆ˜ ์™€ ์˜์‚ฌ ๋‚œ์ˆ˜ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค . ํ†ต๊ณ„์  ๋‚œ์ˆ˜(์ˆ˜ํ•™์˜ ๋‹จ์ˆœ ๋‚œ์ˆ˜์™€ ์œ ์‚ฌ)๋Š” ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋Š” ํŒจํ„ด์ด ์—†๋Š” ๊ฐ’์˜ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ฃผ์‚ฌ์œ„๋ฅผ 10๋ฒˆ ๊ตด๋ฆฌ๋ฉด ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋Š” ํŒจํ„ด์ด ์—†๋Š” ์ž„์˜์˜ ์ˆซ์ž๊ฐ€ ๋งค๋ฒˆ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

์˜์‚ฌ ๋‚œ์ˆ˜๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์ด๊ฒƒ์€ ํ†ต๊ณ„์ ์œผ๋กœ ์ž„์˜์ ์ด์ง€๋งŒ ์•Œ๋ ค์ง„ ์‹œ์ž‘์ ์ด ์žˆ๋Š” ๊ฐ’์˜ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค . Java์—์„œ ๊ฐ ์˜์‚ฌ ๋‚œ์ˆ˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ผ๋ฐ˜์ ์œผ๋กœ java.util.Random์ด ๋‚œ์ˆ˜๋ฅผ ์ƒ์„ฑํ•  ๋•Œ๋งˆ๋‹ค ์ฃผ๊ธฐ๊ฐ€ โ€‹โ€‹๋ฐ˜๋ณต๋ฉ๋‹ˆ๋‹ค . Java์˜ ๋‚œ์ˆ˜ ์ƒ์„ฑ๊ธฐ๋Š” ํ†ต๊ณ„์ ์œผ๋กœ ๋‚œ์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜์ง€๋งŒ ์•Œ๋ ค์ง„ ์‹œ์ž‘์ ์„ ์‚ฌ์šฉํ•˜์—ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์˜ํ•ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๊ทธ ๊ฐ’์„ ์˜์‚ฌ ๋‚œ์ˆ˜๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

java.util.Random ํด๋ž˜์Šค๋Š” ์•”ํ˜ธํ•™์ ์œผ๋กœ ์•ˆ์ „ํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

๋‚œ์ˆ˜ ์ƒ์„ฑ์„ ์œ„ํ•ด ๊ตฌํ˜„๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์•”ํ˜ธํ•™์ ์œผ๋กœ ์•ˆ์ „ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž‘๋™ ๋ฐฉ์‹์„ ์•„๋Š” ์‚ฌ๋žŒ์€ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ฐ ๋งŽ์€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ผ๋ถ€ ๋ณด์•ˆ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์ž‘์—…ํ•˜๊ฑฐ๋‚˜ ์ผ๋ถ€ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณดํ˜ธํ•ด์•ผ ํ•˜๊ฑฐ๋‚˜ ์ž„์˜ ์•”ํ˜ธ๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์ด ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋ฃจ๋„, ๋„๋ฐ•, ๊ฒฝ๊ธฐ๋ฅผ ์œ„ํ•œ ๋˜์ง€๊ธฐ ๋˜๋Š” ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๋Š” ๊ธฐํƒ€ ์˜์—ญ์—์„œ ์ฃผ์‚ฌ์œ„ ๊ตด๋ฆผ์— ๋Œ€ํ•œ ๋‚œ์ˆ˜ ์ƒ์„ฑ๊ณผ ๊ฐ™์€ ๋งŽ์€ ๊ฒฝ์šฐ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ฐฉ๋ฒ• ์„ ์–ธ

์ด ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋จผ์ € ํŒจํ‚ค์ง€์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

import java.util.Random;
๊ฐ€์ ธ์˜จ ํ›„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ด ํด๋ž˜์Šค์˜ ๊ฐœ์ฒด๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Random randomNumbers = new Random();
๋” ๋‚˜์•„๊ฐ€ java.util.Random ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค์–‘ํ•œ ์˜ˆ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค .

์˜ˆ


import java.util.Random;

public class RandomClassExample1 {

	public static void main(String[] args) {

		// create random object
		Random randomNumbers = new Random();
		
		System.out.println("----------Random Boolean---------" );
		/*
		 * Returns the next pseudo random boolean value which 
		 * may be used in a toss for a match
		 */
		boolean value = randomNumbers.nextBoolean();
		System.out.println("The random boolean value is: " + value);
		
		/*
		 * Returns the next pseudo random integer value between 0 and 5  
		 * because if we use '6' then, it will give random numbers from 0 to 6 
		 * hence incrementing it by 1 you can use it as a result of a dice roll
		 */
		System.out.println("\n----------Random Integer---------" );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		
		// return the next pseudo random long value
		Long val = randomNumbers.nextLong();
		System.out.println("\n----------Random Long---------" );
		System.out.println("Random Long value: " + val);
		
		/*
		 * Generates random bytes and puts them in an array, which you can for some
		 * desired unpredictable result that is summing all the values in the array
		 */
		
		System.out.println("\n----------Random Bytes---------" );
		byte[] bytes = new byte[8];
		randomNumbers.nextBytes(bytes);
		
		System.out.print("These are the random bytes = [ ");
		for (int i = 0; i < bytes.length; i++) {
			System.out.printf("%d ", bytes[i]);
		}
		System.out.println("]");
	}

}

์‚ฐ์ถœ

----------Random Boolean--------- Random Boolean ๊ฐ’: true ----------Random Integer--------- Die ๋กค: 4 ๋‹ค์ด ๋กค: 6 ๋‹ค์ด ๋กค: 1 ๋‹ค์ด ๋กค: 1 ๋‹ค์ด ๋กค: 3 ----------Random Long--------- Random Long ๊ฐ’: -6029959293504570824 ---- ------๋žœ๋ค ๋ฐ”์ดํŠธ--------- ๋žœ๋ค ๋ฐ”์ดํŠธ = [ -37 90 -98 -70 23 -111 19 108 ]

ํ–‰๋™ ์–‘์‹

์ด์ œ randomNumbers๊ฐ€ ํด๋ž˜์Šค์˜ ๊ฐœ์ฒด ๋˜๋Š” ์ธ์Šคํ„ด์Šค๋ผ๋Š” ์ ์„ ์—ผ๋‘์— ๋‘๊ณ  ์ด ํด๋ž˜์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค .
  1. ๋ณต์‹() :

    ์ด ๋ฉ”์„œ๋“œ๋Š” ์˜์‚ฌ ๋‚œ์ˆ˜๋กœ ์ƒ์„ฑ๋œ double ๊ฐ’์˜ ๋ฌดํ•œํ•œ ์‹œ๋ฆฌ์ฆˆ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

    
    randomNumbers.doubles();
    
  2. ์ •์ˆ˜() :

    ์ด ๋ฉ”์„œ๋“œ๋Š” ์˜์‚ฌ ๋‚œ์ˆ˜๋กœ ์ƒ์„ฑ๋œ ์ •์ˆ˜ ๊ฐ’์˜ ๋ฌดํ•œํ•œ ๊ณ„์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    
    randomNumbers.ints();
    
  3. ๋กฑ() :

    ์ด ๋ฉ”์„œ๋“œ๋Š” ์ž„์˜๋กœ ์ƒ์„ฑ๋œ ๊ธด ๊ฐ’์˜ ๋ฌดํ•œํ•œ ๊ณ„์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์Šคํฌ๋ฆฝํŠธ๋Š” ์ด ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

    
    randomNumbers.longs();
    
  4. ๋‹ค์Œ ๋ถ€์šธ() :

    ์ด ๋ฉ”์„œ๋“œ๋Š” ๋‚œ์ˆ˜ ์ƒ์„ฑ๊ธฐ ์‹œํ€€์Šค์—์„œ ๊ท ์ผํ•˜๊ฒŒ ๋ถ„ํฌ๋œ ๋‹ค์Œ ์˜์‚ฌ ๋‚œ์ˆ˜ ๋ถ€์šธ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ท ์ผ ๋ถ„ํฌ๋Š” ์ง์‚ฌ๊ฐํ˜• ๋ชจ์–‘์ด๋ฉฐ ๋ถ„ํฌ์˜ ๋ชจ๋“  ๊ฐ’์ด ๋™์ผํ•œ ํ™•๋ฅ ์„ ๊ฐ€์ง์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    
    randomNumbers.nextBoolean();
    
  5. nextInt(int n) :

    ์ด ๋ฉ”์„œ๋“œ๋Š” 0 ํฌํ•จ ๋ฐ ์ œ๊ณต๋œ ๊ฐ’ ์ œ์™ธ ์‚ฌ์ด์˜ ๋‚œ์ˆ˜ ์ƒ์„ฑ๊ธฐ ์‹œํ€€์Šค์—์„œ ๊ท ์ผํ•˜๊ฒŒ ๋ถ„ํฌ๋œ ๋‹ค์Œ ์˜์‚ฌ ๋‚œ์ˆ˜ ์ •์ˆ˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋น ๋ฅด๊ฒŒ ์‚ดํŽด๋ณด์‹ญ์‹œ์˜ค.

    
    randomNumbers.nextInt(10);
    

๊ฒฐ๋ก 

์ด์ œ java.util.Random ์ด ๋ฌด์—‡์ธ์ง€ , ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์ด๋ฅผ ์‚ฌ์šฉํ•  ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ดํ•ดํ•˜์…จ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. Java์—์„œ ์ด ํด๋ž˜์Šค๋ฅผ ํ•ญ์ƒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์œ ๋กญ๊ฒŒ ์—ฐ์Šตํ•˜๊ณ  ๋„์›€์ด ๋” ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ์—ฌ๊ธฐ๋กœ ๋Œ์•„์˜ค์„ธ์š”. ํ–‰๋ณตํ•œ ํ•™์Šต!
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION