[Algorithm] 언어별(C, C++, Python, Javascript, Java, Shell Script) 난수(랜덤 값) 생성하기
각 언어에서 난수를 생성하는 방법을 알아보자
환경
- C, C++, Python, Javascript, Java, Shell Script
난수 생성 코드
C
rand
함수 이용rand()
: 0과 RAND_MAX 사이에 난수 정수 값을 반환srand
와time
함수는 랜덤 생성할 시드 값을 위해 사용
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main (){
// use time for seed
srand(time(NULL));
// print one number in range 1 ~ 50
printf("%d\n", rand() % 50 + 1);
return 0;
}
C++
rand
함수 이용rand()
: 0과 RAND_MAX 사이에 난수 정수 값을 반환srand
와time
함수는 랜덤 생성할 시드 값을 위해 사용
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main (){
// use time for seed
srand(time(NULL));
// print one number in range 1 ~ 50
cout << rand() % 50 + 1 << endl;
return 0;
}
Python
random
패키지 사용random.random()
: 0이상 1미만의 실수를 반환random.randrange(a,b)
: a이상 b미만의 정수를 반환
import random
# value between 0 and 1, 1 is not included
# ex) 0.667165525151183
rand_value = random.random()
# random integer between a and b, b is not included
rand_value = random.randrange(1,50) # 1 ~ 49
Javascript
Math.random()
를 사용Math.random()
: 0이상 1미만의 실수를 반환
// value between 0 and 1, 1 is not included
// ex) 0.8645079349832587
var = Math.random();
// 올림, 내림, 반올림 -> ceil, floor, round
Math.ceil (Math.random()) // 1
Math.floor (Math.random()) // 0
Math.round (Math.random()) // it depends
Java
java.util.Random
혹은java.lang.Math
를 이용- random.nextInt(n): 0 ~ n-1 사이의 난수 정수 값을 반환
- Math.random(): 0이상 1미만의 실수를 반환
import java.util.Random;
public class Main {
public static void main(String[] args) {
// Random example using java.util.Random
Random random = new Random();
// Number between 100 and 199
System.out.println(random.nextInt(100) + 100);
// Random example using java.
// Number between 100 and 199
System.out.println( (int)(Math.random() * 114124)%100 + 100 );
}
}
Shell Script
$RANDOM
를 이용$RANDOM
: 0 ~ 32767 사이의 정수 값을 반환
# Number between 0 and 32767
echo $RANDOM
# Number between 100 and 199
echo $(($RANDOM*12345%100 + 100))
참고자료
- https://www.tutorialspoint.com/c_standard_library/c_function_rand.htm
- https://library1008.tistory.com/44
- https://blog.eduonix.com/shell-scripting/generating-random-numbers-in-linux-shell-scripting/
- https://stackoverflow.com/questions/2556190/random-number-from-a-range-in-a-bash-script
- https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/random