RNG 및 우승 메커니즘 테스트 방법
슬롯의 정직성은 고품질 RNG (랜덤 수 생성기) 와 올바른 승리 메커니즘의 두 가지 지지대에 있습니다. 테스트는 하나의 운 테스트가 아니라 전체 시스템: RNG 암호화 강도, 통계 점검, RTP/휘발성 몬테 카를로 시뮬레이션, 재현성을위한 결정 론적 측면, 감사 로그 및 독립 실험실의 인증. 아래는 완전하고 실용적인 컨베이어입니다.
1) RNG 아키텍처: "임의성" 을 구성하는 것
엔트로피 소스: OS (CSPRNG/'/dev/urandom ', CryptGenRandom), 하드웨어 TRNG (사용 가능한 경우), 시스템 노이즈.
알고리즘: 흐름 독립성 제어가있는 서버 CSPRNG (예: CTR _ DRBG/HMAC _ DRBG) 또는 고품질 PRNG (PCG/Xoshiro).
종자 정책: CSPRNG의 기본 시드, 세션/게임/기능 당 개별 스트림, 재사용 방지, 안전한 저장 장치 (HSM/보안 저장 장치).
서버 → 클라이언트: 결과는 서버에서 계산되며 클라이언트는 시각화 일뿐입니다. "전주곡" (미스/티저 근처) 은 결과에 영향을 미치지 않습니다.
스핀의 독립성: 균형에 대한 자동 조정 없음; "행운 스트립" 이 부족합니다.
통제 질문: 결과는 어떤 단계에서 받아 들여집니까? 답: 애니메이션을 재생하기 전에 변경할 수없는 로그에 고정하십시오.
2) RNG 매핑 → 결과 (바이어스 없음)
문자/셀의 가중치에서 난수의 올바른 전개는 "모듈 식" 및 기타 변화가없는 열쇠입니다.
균일 한 샘플-범위 '[0, N)' 의 숫자가 필요한 경우 'rand ()% N' 대신 거부 샘플링을 사용하여 '2 ² k% N § 0' 에서 바이어스를 제외하십시오.
가중 샘플: 중량 별 빠른 샘플에 대한 누적 분포 (CDF) 또는 Alias 알고리즘 (Vose).
다중 풀: 각 릴/셀/이벤트에 대한 별도의 RNG 호출이며 전체 필드에 대해 하나의 숫자를 "산란" 하지 않습니다.
코드 레벨에서의 보장: 불변량에 대한 속성 기반 테스트 ("주파수 합계", "세그먼트가 과소 표시되지 않음").
3) 우리가 정확히 확인하는 것: 목표와 지표
RTP (플레이어로 돌아 가기) -평균 수익률,%- 변동성/분산-결과의 분산
- 적중 률-모든 승리의 빈도
- 보너스 주파수
- 최대 노출-이론적 최대 (입찰 x)
- 문구-시간/릴리스에서 분포의 드리프트 없음
4) RNG 통계 테스트 (오프라인 배터리)
각 RNG 스트림에 대해 별도로 긴 시퀀스 (10 개의 비트 + 비트/값) 에서 "배터리" 를 사용하십시오
순간 및 상관 관계: 단일 항목 테스트 (비율 0/1), 자기 상관 (lag k), 직렬 및 쌍 상관 관계.
주파수, 블록 주파수, 실행, 가장 긴 실행, FFT, 대략적인 엔트로피.
TestU01/Dieherd: 추가 "스트레스 테스트" (생일 간격, 매트릭스 순위, 무작위 여행).
KS/² 버킷 ²: '[0,1)' 및 목표 범위에서 경험적 및 이론적 균일 성을 비교합니다.
포커 테스트 (비트 그룹에 대해) 및 "갭 테스트".
수락 기준: 허용 가능한 범위의 p- 값 ("너무 이상적이지 않음"), 고정 측면 값에 체계적인 장애가 없음, 다른 플랫폼/컴파일러에 대한 안정적인 결과.
5) 매핑 통계 (게임 별)
잘못된 매핑으로 완벽한 RNG조차도 망칠 수 있습니다. 결과 분포를 확인합니다
기호/셀의 주파수: 가중치와 일치하는 경우 (릴/클러스터/코인 별)
조합/라인: 조합 승리를위한 이항 간격; 참조 테이블과 비교
보너스 트리거/트리거: 이벤트 간격 (기하학적/음성 이항) + KS/AD 테스트.
드럼의 독립성: 위치 간의 상호 상관 관계 ("고착" 제외).
6) RTP/휘발성/주파수의 Monte Carlo 시뮬레이션
재현 가능한 시뮬레이션은 QA 수학의 핵심입니다.
1. 설정: 수학, 사이드, 가중치/끈/지불 가능한 버전을 수정하십시오.
2. 실행: 3 차-꼬리 안정성을 위해 10 회 회전; 별도로-긴 보너스 세션.
3. 추정 및 간격:- RTP 점수: (\hat {RTP} =\bar {X}), 여기서 (X) 는 xBet의 이득입니다.
- 신뢰 간격 (CLT): (\hat {RTP }\pm z _ {\alpha/2 }\cdot s/\sqrt {n}).
- 필요한 샘플: (n\접근 (z\cdot s/\varepsilon) ² 2) 오류 (\varepsilon).
- 적중률/보너스 속도의 경우 이항 (윌슨) 간격.
- 4. 꼬리: p95/p99/p99. 스핀 당 및 보너스 당 9 승; "최대 노출" 을 제어하십시오.
- 5. 안정성: 가중치의 차이에 대한 민감도 ("견고성 실행").
7) 결정성과 재현성
QA에 대한 결정 론적 측면: 동일한 sid → 동일한 결과 (골든 런).
플랫폼에서 동일한 결과: 컴파일러/라이브러리 버전 수정, 엔디안 검사, FPU 모드.
상태 저장: 결과를 "뒤집지 않고" 중단 된 보너스/스핀을 복원하십시오.
인프라 재생: 분석을위한 "문제가있는" 시드 + 스텝 티켓을 시작합니다.
8) 보안 및 변조 방지
WORM 로그 (또는 머클리 해시 체인): 애니메이션 전에 결과 및 입력 매개 변수 기록.
빌드 및 수학 목록의 서명: 급여 테이블/스케일 버전-서명이있는 매니페스트.
클라이언트 무결성 제어: 난독 화, 해시 검사, 계측 방지.
서버 권한: 서버 만 결과를 결정합니다. 클라이언트에는 "숨겨진" 검사가 포함되어 있
9) 부하 및 장기 테스트
흡수 테스트: 측면 회전으로 수억 회전; 메모리/리소스 누출 모니터링.
높은 경쟁: RNG 스트림의 병렬 세션 → 경주/잠금 경합 없음.
네트워크 저하: 반복 요청/타임 아웃으로 스핀 결과가 변경되지 않습니다.
10) UX 불변량의 검증 (인터페이스 무결성)
미스: 애니메이션은 확률을 변경하지 않습니다. 드라마를 위해 "리깅" 금지가 중단됩니다.
스핀 속도: 가속/터보는 RNG에 영향을 미치지 않습니다.
교육/데모 모드: 정직하거나 태그가 지정되고 수학이 분리됩니다.
11) 출시 후 모니터링 (판매 통계 제어)
SPC 카드/제어 그래프: 허용 가능한 복도에서 시간별 RTP/카지노/지오.
드리프트 감지: 승리/주파수 분포의 PSI/JS 분기.
경고: 편차 → 게임/시장 차단, 로그 재계산, 보고서.
12) 인증 및 문서
실험실 패키지 준비 (GLI/eCOGRA/BMM/iTech 등):- RNG 설명: 알고리즘, 엔트로피 소스, 작물 정책, 흐름의 독립성.
- RNG 모듈 (또는 검사 아티팩트) + 테스트 로그의 소스/바이너리.
- 수학 시트: 지불 테이블, 무게, RTP 분석 (기본/보너스/잭팟), 최대 노출.
- 시뮬레이션 보고서: 볼륨, 메트릭, 신뢰 구간.
- 로그/재생: 형식, 서명, 보존 정책.
- 버전: 변경 불가능한 아티팩트 해시 (빌드, 자산, 수학).
13) 빈번한 실수와 피하는 방법
'rand ()% N' 및 모듈 식 오프셋. 거부/별칭을 사용하십시오- 스레드가없는 모든 것에 대한 하나의 RNG. 독립적 인 스트림을 수행하고 숨겨진 상관 관계를
"아름다운 색인으로 매핑". "가중치 ² ² 테스트에 대해 항상 주파수를 확인하십시오.
작은 시뮬레이션. 10 나중은 "연기 점검" 이며 꼬리에는 10 개의 우두머리가 필요합니다.
결정 론적 측면이 부족합니다. 그들 없이는 버그를 재현 할 수 없습니다.
고객이 결과를 결정합니다. 서버 만, WORM 로그 만.
모니터링 후. 릴리스는 끝이 아니라 통계 제어의 시작입니다.
14) 공식 및 미니 치트 시트
유니포미티 ² (k 버킷):[
\ chi ² 2 =\sum _ {i = 1}> k\frac {(O _ i-E _ i) ² 2} {E _ i} ,\quad E _ i = n/k
]
(\chi ² 2 _ {k-1}) 와 비교하십시오.
연속 분포를위한 KS:[
D =\sup _ x F _ n (x) -F (x)
]
RTP 신뢰 구간 (CLT):
[
\ hat {\mu }\pm z _ {\alpha/2 }\frac {s} {\sqrt {n}}
]
분수 p 용 윌슨 (적중/보너스 비율):
[
\ frac {p +\frac {z ² 2} {2n }\pm z\sqrt {\frac {p (1-p)} {n} +\frac {z ² 2} {4n ² 2}} {1 +\frac {z ² 2} {{n}}
]
15) 점검표
기술 설계 RNG
- CSPRNG/TRNG 소스; 문서화 된 종자/스트림 정책
- 독립 스트림, 공유 상태 경주 없음
- '%' 대신 거부/별칭
- 서버 권위; 애니메이션 전에 결과 수정
- WORM 로그, 아티팩트 서명
통계 및 시뮬레이션
- Batterey NIST/TestU01/Dieherd-통과
- ² ²/KS/상처-결과 매핑
- 계속 10-스핀 10 우두머리; 공차의 RTP/주파수 별 CI
- p95/p99/p99 꼬리. 9 및 제어중인 최대 노출
- 확대 할 때 견고성이 실행
QA/엔지니어링
- 결정 론적 측면; 티켓 재생
- 흡수/하중; 메모리/CPU/대기 시간 안정성
- 결과 변경없이 스핀/보너스 요약
- 결과의 플랫폼 간 정체성
준수/문서
- RNG 사양 + 소스/아티팩트
- 수학 시트 + 시뮬레이션 보고서
- 로깅/보존/감사 정책
- Versioning and build/paytable 해시
RNG 및 우승 기계 테스트는 통계 및 안전 공학입니다. 다음과 같은 경우 플레이어와 브랜드를 보호
1. RNG는 서서 올바르게 시드되었습니다. 2. 바이어스 및 재현 가능한 결과없이 매핑 결과, 3. 큰 시뮬레이션으로 확인 된 RTP/주파수/꼬리, 4. 결과는 애니메이션 전에 캡처 및 감사됩니다. 5. 출시 후 모니터링은 드리프트를 포착합니다.
따라서 슬롯은 정직하고 예측 가능하며 (통계적인 의미에서) 조작에 저항력이 있으며 인증을 통과하고 장기적인 신뢰를 구축합니다.