난수 생성기

난수 생성기

난수를 생성하는 술어들을 설명해요.

출처: GNU Prolog Manual - Random number generator

본문

set_seed/1, randomize/0

Templates

set_seed(+integer)
randomize

Description

  • set_seed(Seed) — Seed로 난수 생성기 시드를 재초기화.
  • randomize — 난수 생성기를 재초기화. 이 술어는 절대 시간에 의존하는 무작위 값으로 set_seed/1을 호출.

Errors

  • Seed가 변수 — instantiation_error
  • Seed가 변수도 정수도 아님 — type_error(integer, Seed)
  • Seed가 0보다 작은 정수 — domain_error(not_less_than_zero, Seed)

Portability: GNU Prolog 술어.

get_seed/1

Templates

get_seed(?integer)

Description get_seed(Seed)는 현재 난수 생성기 시드와 Seed를 통일해요.

Errors

  • Seed가 변수도 정수도 아님 — type_error(integer, Seed)
  • Seed가 0보다 작은 정수 — domain_error(not_less_than_zero, Seed)

Portability: GNU Prolog 술어.

random/1

Templates

random(-float)

Description random(Number)는 0.0 ≤ Number < 1.0인 무작위 부동소수점 수와 Number를 통일해요.

Errors

  • Number가 변수가 아님 — uninstantiation_error(Number)

Portability: GNU Prolog 술어.

random/3

Templates

random(+number, +number, -number)

Description random(Base, Max, Number)는 Base ≤ Number < Max인 무작위 수와 Number를 통일해요. Base와 Max가 모두 정수이면 Number는 정수이고, 그 외에는 Number는 부동소수점 수예요.

Errors

  • Base가 변수 — instantiation_error
  • Base가 변수도 숫자도 아님 — type_error(number, Base)
  • Max가 변수 — instantiation_error
  • Max가 변수도 숫자도 아님 — type_error(number, Max)
  • Number가 변수가 아님 — uninstantiation_error(Number)

Portability: GNU Prolog 술어.

더 알아보기