캐리로 빼다

Subtract with carry

뺄셈 위드 캐리는 의사 난수 생성기입니다.소량의 시작 데이터를 기반으로 일련의 랜덤한 숫자를 생성하도록 설계된 많은 알고리즘 중 하나입니다.1991년 [1]조지 마르사글리아와 아리프 자만에 의해 도입된 뒤처진 피보나치 타입이다."Lagged Fibonacci"는 각 난수가 지정된 고정 오프셋 또는 "Lags"에서 앞의 두 숫자의 함수라는 사실을 의미합니다.

알고리즘.

반송 감산 엔진에 의해 생성되는 시퀀스는 반복 관계로 설명할 수 있습니다.

서 cy ( ) { , x ( -) - ( - ) - y ( -) < , 이외의 cy ( i ) { ( i - S ) - x ( - R ) < \ text ( i - 0 ( i - R ) < 0 \ >

상수 S와 R은 각각 [2]짧은 시차와 긴 시차로 알려져 있습니다.따라서 x- { x - { x 은 시퀀스의 S번째 및 R번째 이전 항에 해당합니다.S 및 R은 0 << < \ < S < S < R> 。 모듈러스 은 M W { \ M { } 입니다.여기서 W는 상태 시퀀스의 워드사이즈(비트 단위), >(\ W> 입니다.

캐리와 함께 감산 엔진은 캐리와 함께 추가 [1]대여 엔진을 포함하는 발전기 제품군 중 하나입니다.

표준 C++11 [3]라이브러리에 포함된 3개의 난수 발생기 엔진 중 하나입니다.

레퍼런스

  1. ^ a b 새로운 등급의 난수 발생기, George Marsaglia와 Arif Zaman, 응용 확률 연보, 제1권, 제3호, 1991년
  2. ^ 뺄셈_with_carry_engine 클래스, Microsoft Visual Studio 2015
  3. ^ std::http_with_carry_engine, cppreference.com