피드로 돌아가기
Dev.toBackend
원문 읽기
1.23억 건의 시뮬레이션을 통한 Floating Point 오차 제거 및 RNG 모델 최적화
What 123 million simulated CS2 case openings taught me about modeling RNG
AI 요약
Context
부동 소수점 연산의 정밀도 한계로 인해 확률 합계가 1.0에 미치지 못하는 엣지 케이스 발생. 시각적 애니메이션 좌표 기반의 결과 도출 방식으로 인한 실제 확률 분포 왜곡 문제 직면.
Technical Solution
- Floating Point 오차 원천 차단을 위해 가중치 모델을 정수 기반(parts-per-10000) 구조로 전환
- 결과 값 선결정 후 UI를 맞추는 'Result-First' 애니메이션 파이프라인 설계로 시각적 편향 제거
- Item Registry 기반의 데이터 분리를 통한 Case Definition의 결합도 해소 및 유지보수성 향상
- 개별 Item의 min/max float 범위를 적용한 선형 보간법으로 실제 아이템 희귀도 정밀 구현
- StatTrak 여부를 독립적인 Conditional Roll로 처리하여 범주형 확률 모델의 수치 드리프트 방지
- CI 단계에서 가중치 합계 불변성(Invariant)을 검증하는 Unit Test 강제화
실천 포인트
1. 확률 가중치 합계 검증 로직을 CI 파이프라인에 포함했는가
2. UI 애니메이션 좌표가 결과 값에 영향을 주는 구조는 아닌가
3. 부동 소수점 대신 정수 기반의 가중치(Integer Weights)를 사용 중인가
4. 아이템별 개별 제약 조건(min/max float)이 확률 모델에 반영되었는가