rand()

rand() 함수는 0 이상 지정한 경계값 미만의 임의의 정수를 반환합니다.

문법

rand(BOUND[, SEED])

매개변수

BOUND
반환값의 상한 경계를 지정하는 양의 정수입니다. 0보다 큰 값을 지정해야 합니다. rand() 함수는 0 이상 BOUND 미만의 정수를 반환합니다.
SEED
난수 생성기의 시드값입니다. 지정하면 같은 시드에서 항상 동일한 순서의 값을 생성합니다. 쿼리의 동작을 검증하거나 재현 가능한 결과가 필요할 때 사용합니다.

설명

rand() 함수는 Java의 Random 클래스를 사용하여 0 이상 BOUND 미만의 임의의 정수를 반환합니다.

BOUND는 반드시 양의 정수이어야 합니다. 실수나 음수를 지정하면 쿼리 파싱 시점에 오류가 발생합니다. SEED는 정수이어야 하며, 실수를 지정하면 파싱 시점에 오류가 발생합니다.

BOUND를 동적 표현식으로 지정한 경우, 실행 중 해당 값이 정수가 아니거나 음수이면 null을 반환합니다.

Caution
`SEED`를 지정하면 항상 동일한 순서의 값을 반환합니다. 보안 목적의 난수 생성에는 사용하지 마세요.

오류 코드

오류 코드설명
90750유효하지 않은 BOUND 값을 지정한 경우
90751BOUND에 0 이하의 값을 지정한 경우
90752SEED에 실수를 지정한 경우

사용 예

  1. 0~999 범위의 임의의 정수 생성

    json "{}" | eval r = rand(1000)
    | # r: (0 이상 1000 미만의 임의 정수)
    
  2. 시드를 지정하여 재현 가능한 값 생성

    json "{}" | eval r = rand(1000, 42)
    | # r: (0 이상 1000 미만의 임의 정수)
    
  3. BOUND를 동적 표현식으로 지정한 경우

    json "{'n': 100}" | eval r = rand(n)
    | # r: (0 이상 100 미만의 임의 정수)
    

호환성

rand() 함수는 소나 4.0 이전 버전부터 제공되었습니다.