🏁 Programming/Java

[Java] λ‚œμˆ˜(랜덀 숫자) μƒμ„±ν•˜λŠ” 방법

Dhey 2023. 2. 27. 15:58
λ°˜μ‘ν˜•

Javaμ—μ„œ λ‚œμˆ˜λ₯Ό μƒμ„±ν•˜λŠ” λ°©λ²•μ—λŠ” 두 κ°€μ§€κ°€ μžˆλ‹€.

 

1. Math 클래슀의 random() λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜λŠ” 방법

2. Random 클래슀λ₯Ό ν™œμš©ν•˜λŠ” 방법

 

 

 


 

 

λ¨Όμ € Math 클래슀의 random()λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄μž.

 

 

 

Math.random( )

 

random()은 double νƒ€μž…μœΌλ‘œ 0.0 ~ 0.99999 μ‚¬μ΄μ˜ 값을 랜덀으둜 return ν•΄μ€€λ‹€.

 

 

Math ν΄λž˜μŠ€λŠ” μ΅œμƒμœ„ 클래슀인 Object 클래슀 μ•ˆμ— μžˆμœΌλ―€λ‘œ λ”°λ‘œ importλ₯Ό μ‹œμΌœμ£Όμ§€ μ•Šμ•„λ„ μ‚¬μš©μ΄ κ°€λŠ₯ν•˜λ©°, Math.random() λ©”μ†Œλ“œλ„ static λ©”μ†Œλ“œλ‘œ μ΄λ£¨μ–΄μ ΈμžˆκΈ°μ— λ°”λ‘œ ν˜ΈμΆœν•˜μ—¬ μ‚¬μš©ν•  수 μžˆλ‹€.

 

 

이것을 1~10, 1~100 λ“±μ˜ 랜덀 숫자둜 λ³€κ²½ν•˜λ €λ©΄ Math.random()에 10, 100 등을 κ³±ν•œ λ‹€μŒ intν˜•νƒœλ‘œ ν˜•λ³€ν™˜μ„ ν•΄μ€€λ‹€.

doubleμ—μ„œ int둜 ν˜•λ³€ν™˜μ΄ 이루어지면 μ†Œμˆ˜μ  μ΄ν•˜μ˜ μˆ«μžλ“€μ€ μ†μ‹€λ˜κΈ°μ— 1을 μΆ”κ°€λ‘œ 더해쀀닀.

 

 

 

예λ₯Ό λ“€μ–΄

int random = (int)(Math.random()*100);

μœ„μ˜ ν˜•νƒœμ²˜λŸΌλ§Œ ν•΄μ€€λ‹€λ©΄ 0.0000*100 = 0, 0.99999*100 = 99.999이닀.

이 μƒνƒœμ—μ„œ int둜 ν˜•λ³€ν™˜μ„ ν•΄μ€€λ‹€λ©΄ 0 ~ 99κΉŒμ§€μ˜ λ²”μœ„κ°€ μ§€μ •λœλ‹€.

 

 

 

λ”°λΌμ„œ 1~100κΉŒμ§€μ˜ κ°’μœΌλ‘œ λ‚œμˆ˜λ₯Ό λ°œμƒμ‹œν‚€λ €λ©΄ 1을 더해주어야 ν•œλ‹€.

int random = (int)(Math.random()*100) + 1;

 

 

 


 

λ‹€μŒμ€ Random 클래슀λ₯Ό ν™œμš©ν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄μž.

 

 

 

Random 클래슀

 

Random λ³€μˆ˜λͺ… = new Random();으둜 랜덀 객체λ₯Ό μƒμ„±ν•œλ‹€.

 

 

Random ν΄λž˜μŠ€λŠ” java.util νŒ¨ν‚€μ§€ μ•ˆμ— μžˆμ–΄μ„œ importλ₯Ό ν•˜μ—¬ μ‚¬μš©ν•΄μ•Ό ν•˜κ³ , newλ₯Ό 톡해 객체λ₯Ό 생성해주어야 ν•œλ‹€.

 

 

import java.util.Random;

public class RadomTest {
	public static void main(String[] agrs) { 
    	Random ran = new Random();	//랜덀 객체 생성
        
        System.out.println(ran.nextInt());	// λ²”μœ„: 0 ~ (νŒŒλΌλ―Έν„°-1)κΉŒμ§€μ˜ 랜덀 숫자 return
        System.out.println(ran.nextInt(100));	// λ²”μœ„: 0 ~ 99
        
        System.out.println(ran.nextBoolean());	// λ²”μœ„: boolean νƒ€μž…μ˜ true, false 쀑 랜덀 κ°’ return
    	System.out.println(ran.nextDouble());	// λ²”μœ„: double νƒ€μž…μ˜ 0 ~ 1.0κΉŒμ§€μ˜ 랜덀 숫자 return
    	System.out.println(ran.nextFloat());	// λ²”μœ„: float νƒ€μž…μ˜ 0 ~ 1.0κΉŒμ§€μ˜ 랜덀 숫자 return
    }
}

 

 

 

 

 

 

λ°˜μ‘ν˜•