캐리로 빼다
Subtract with carry![]() | 이 기사는 대부분의 독자들이 이해하기에는 너무 전문적일 수 있다.(2013년 7월 (이 및 ) |
뺄셈 위드 캐리는 의사 난수 생성기입니다.소량의 시작 데이터를 기반으로 일련의 랜덤한 숫자를 생성하도록 설계된 많은 알고리즘 중 하나입니다.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개의 난수 발생기 엔진 중 하나입니다.
레퍼런스
- ^ a b 새로운 등급의 난수 발생기, George Marsaglia와 Arif Zaman, 응용 확률 연보, 제1권, 제3호, 1991년
- ^ 뺄셈_with_carry_engine 클래스, Microsoft Visual Studio 2015
- ^ std::http_with_carry_engine, cppreference.com