「획득 확률」은 어떻게 계산되는가

나이트레인 유물 매크로 — 확률 엔진 원리 설명 · v1.4.9 기준 (2026-07)

1. 무엇을 계산하나

「획득 확률」 화면의 숫자는 모두 하나의 기본 확률에서 출발합니다.

p = P(상점에서 유물 1개를 구매했을 때, 그 유물이 타깃 조건과 일치)

p를 구한 뒤, 사이클(1회 구매에 걸리는 시간) τ를 곱해 "지정 시간 안에 최소 1개를 얻을 확률"로 변환합니다. 구매는 매번 독립이므로 기하분포(geometric distribution)를 따릅니다.

P(시간 T 안에 1개 이상) = 1 − (1 − p)N,   N = T / τ (구매 횟수)

예: 한 번 구매가 타깃과 일치할 확률이 p = 3.15%라면 —

구매 횟수 N22회72회146회
1개 이상 획득 확률≈ 50%≈ 90%≈ 99%

2. 게임이 유물을 만드는 방식 — 역설계(reverse engineering) 결과

확률을 계산하려면 먼저 게임이 상점 유물을 어떻게 뽑는지를 알아야 합니다. 아래 절차는 실제 게임 코드를 분석해(파라미터 테이블 + 라이브 검증) 확인한 것입니다.

① 외형(껍데기) 추첨 가중치 룰렛 (chanceWeight) → 색 · 크기(슬롯 수) 결정 외형마다 가중치가 다름 ② 슬롯별 효과 추첨 슬롯마다 자기 풀(pool)에서 가중치 추첨 (풀이 서로 다를 수 있음) 슬롯1 슬롯2 슬롯3 풀 A 풀 B 풀 A ③ 충돌 시 재추첨 이미 뽑힌 효과와 중복·공존 불가면 그 슬롯만 다시 뽑음 (순차 처리) 물리 공격력 신성 공격력 같은 배타 유형 → 재추첨! ④ 저주(네거티브) 슬롯 — 독립 추첨 심층 유물 등 · 상호 배제 없이 각자 추첨
그림 1 — 상점 유물 1개가 생성되는 4단계. 핵심은 ③의 "충돌한 슬롯만 순차 재추첨(sequential reroll)"이다.

수식으로 쓰면

외형 s가 뽑힐 확률과, 슬롯 j에서 효과 e가 뽑힐(첫 시도) 확률은 단순한 가중치 비율입니다.

P(외형 s) = wsΣt wt  ,   P(슬롯 j = e) = we(j)Σe′ we′(j)

단, ③의 재추첨 때문에 실제 슬롯 분포는 앞 슬롯의 결과에 따라 달라집니다(뒤에서 다시 다룸).

공존·충돌 규칙 (coexistence rules)

규칙일반 유물심층 유물
완전히 같은 효과(같은 티어) 2번항상 불가
같은 효과의 다른 티어 2개불가일부 효과만 가능 (효과별 규칙)
서로 다른 효과인데 같은 배타 유형
(예: 물리 공격력 ↔ 신성 공격력)
불가

3. 타깃 매칭 규칙 — 옵션 번호는 슬롯 순서가 아니다

타깃은 색 · 최소 크기 · 옵션1~3(각각 허용 효과 집합과 최소 티어) · 회피 효과로 이뤄집니다. 매칭에 필요한 옵션 수는 min(크기 슬롯 수, 채운 옵션 수)입니다.

중요: 옵션1·2·3은 유물의 1·2·3번 슬롯을 가리키는 것이 아닙니다. 각 옵션은 유물의 어느 슬롯에서 나와도 인정되며, 단지 서로 다른 슬롯이 서로 다른 효과로 각 옵션을 하나씩 담당하면 됩니다 — 아래 그림의 짝짓기(bipartite matching)입니다. 따라서 화면의 확률은 모든 슬롯 배치를 합산한 값입니다.

타깃 설정 옵션1 : 물리 공격력 옵션2 : 최대 HP 뽑힌 유물 (대형 · 3슬롯) 슬롯1 : 달리기 속도 슬롯2 : 최대 HP +1 슬롯3 : 물리 공격력 +2 옵션 ↔ 슬롯 짝짓기 : 순서와 무관, 서로 다른 슬롯이면 OK → 매칭 성공
그림 2 — 옵션1이 3번 슬롯과, 옵션2가 2번 슬롯과 짝지어져도 매칭이다.

4. 순간 확률(기본 표시값)의 수식

화면이 열릴 때 즉시 보여주는 값은 다음 합입니다. 색·크기가 조건에 맞는 외형만 합산합니다.

pΣ외형 s  P(외형 s) × P(매칭 ∧ 회피효과 없음 | s, 독립추첨)Zs × Cs

세 인자의 뜻:

인자의미
P(매칭 ∧ 회피 없음) 모든 슬롯이 독립적으로 첫 추첨에 성공했다고 가정하고, "필요한 수만큼의 옵션이 서로 다른 슬롯·서로 다른 효과로 채워지고, 회피 효과는 하나도 없는" 조합들의 확률 합. 슬롯마다 풀이 다르면 그 차이도 그대로 반영됨.
Zs 공존 재정규화 상수(renormalization constant) = 독립 추첨(independent draw)에서 아무 충돌도 없을 확률. 게임은 충돌을 재추첨으로 제거하므로, "유효한 유물만 나온다"는 조건을 P(매칭)/Zs 나눗셈으로 근사함.
Cs 저주 인자 = 저주 슬롯마다 (1 − w회피/W)의 곱. 회피 지정된 저주가 하나라도 붙으면 실격이므로.

이 계산은 수 밀리초면 끝나므로, 타깃 설정을 바꿀 때마다 실시간으로 갱신되는 확률 표시줄에 쓸 수 있습니다. 참고로 효과 선택 화면의 「확률」 열도 같은 엔진으로 "이 효과 하나가 아무 유물에나 등장할 확률"을 미리 계산해 저장해 둔 값입니다.

5. 왜 순간 확률과 정밀 계산이 다른가

위 수식에는 딱 한 곳, 근사가 들어 있습니다 — P(매칭)/Z 나눗셈입니다. "매칭됨"과 "충돌 없음"이 서로 독립이 아니기 때문(not independent)입니다.

모든 효과 조합 (슬롯 독립 추첨의 전체 경우) 유효 (충돌 없음) 매칭 매칭 ∧ 유효 매칭이지만 충돌 포함 (실제 게임에선 안 나옴) 실제 확률 = (매칭 ∧ 유효) ÷ 유효 순간 확률(근사) = 매칭 전체 ÷ 유효 분자에 빨간 부분이 섞여서 → 약간 과대
그림 3 — 근사의 정체. 분자가 "매칭 ∧ 유효"가 아니라 "매칭 전체"라서, 충돌을 포함한 매칭 조합만큼 확률이 부풀려진다.

타깃 효과는 대개 공격력·방어 같은 배타 유형이 있는 효과라서, 매칭 조합일수록 다른 슬롯과 충돌해 있을 가능성이 평균보다 높습니다. 그래서 이 근사는 거의 항상 실제보다 높게 나옵니다. 실측(2026-07, 400만 회 시뮬레이션 대조):

타깃순간 확률정밀 계산(시뮬)비율
흔한 효과 1옵션3.42%3.15%×1.085
흔한 효과 2옵션0.0756%0.0687%×1.10
심층 · 희귀 1옵션0.528%0.471%×1.12

전형적으로 +8~12%, 조건이 빡빡한 다중 옵션·희귀 타깃에선 최대 ~15–20%까지 높게 표시될 수 있습니다. 방향이 일정하므로(과대), 순간 확률은 "상한에 가까운 빠른 어림값", 정밀 계산은 "기준값"으로 읽으면 됩니다.

슬롯마다 풀이 다른 것(전체 외형의 약 절반)은 오차의 원인이 아닙니다 — 순간 확률도 슬롯별 풀을 정확히 반영합니다. 오차는 오직 위의 "조합(공존) 조건" 근사에서 옵니다.

6. 그럼 왜 수학으로 정확히 못 구하나 — 이론적 한계

"근사하지 말고 P(매칭 ∧ 유효)를 그냥 정확히 계산하면 되지 않나?" — 두 가지 벽이 있습니다.

벽 ① 조합적 폭발(combinatorial explosion) : 확률이 곱으로 분해되지 않는다(non-factorizability)

충돌 규칙이 없다면 슬롯들은 독립이고, 확률은 슬롯별 확률의 으로 분해됩니다(수 ms에 정확 계산). 그런데 충돌 규칙은 슬롯 쌍 사이의 제약(pairwise constraint)입니다 — "슬롯 1의 효과와 슬롯 3의 효과가 같은 배타 유형이면 안 된다"처럼요. 이런 쌍별 제약이 있으면 결합 확률(joint probability)은 더 이상 곱으로 분해되지 않고, 정확한 값은 모든 슬롯 조합을 하나하나 열거한 합이 됩니다.

P(매칭 ∧ 유효 | s) = Σ(e1,…,ek) : 매칭이고 충돌 없음  Πj P(슬롯 j = ej)

풀 하나에 효과가 약 230개, 슬롯이 3~6개이므로 항의 개수는 23031,200만 에서 2306 ≈ 1.5×1014 — 그리고 이것을 외형 수백 개마다 반복해야 합니다. 효과들을 "같은 취급을 받는 묶음"으로 뭉쳐 줄이는 기법을 이미 최대한 쓰고 있지만, 매칭 조건과 공존 조건을 동시에 만족하는지 따지려면 묶음이 다시 잘게 쪼개져 (배타 유형 × 효과 번호 × 티어 × 옵션 소속) 결국 폭발을 피할 수 없습니다. 이런 "쌍별 제약 아래의 정확한 확률 합"은 계산 이론에서 #P-난해(#P-hard)로 분류되는 문제 계열이라 — 다항 시간 안에 정확히 푸는 일반 공식 자체가 알려져 있지 않습니다.

벽 ② 게임의 재추첨은 "조건부(conditioning)"조차 아니다 : 경로 의존성(path dependence)

더 근본적인 문제가 있습니다. 게임은 충돌한 유물을 통째로 버리고 다시 뽑는 게 아니라 (그랬다면 Z 나눗셈이 정확했을 겁니다), 충돌한 슬롯 하나만 그 자리에서 다시 뽑습니다. 그러면 슬롯 j의 실제 분포는 앞 슬롯들의 결과에 따라 달라집니다.

P(슬롯 j = e | 앞 슬롯 결과) = weΣe′: 앞 슬롯과 충돌 없음 we′

분모가 앞에서 무엇이 나왔는지에 따라 매번 달라지는 — 경로 의존적인 순차 과정입니다. 이런 분포는 애초에 "슬롯별 확률의 곱 ÷ 정규화 상수" 꼴로 표현되지 않으므로, 닫힌 형식의 해(closed-form solution)가 존재하지 않고, 정확히 따라가려면 결국 모든 경로를 열거(=벽 ①)하거나 과정을 그대로 흉내 내는 — 즉 몬테카를로 시뮬레이션(Monte-Carlo simulation) — 수밖에 없습니다.

그래서 시뮬레이션이 "정확"한 이유

정밀 계산 버튼은 위의 생성 절차(외형 추첨 → 슬롯별 추첨 → 충돌 슬롯 재추첨 → 저주)를 그대로 N = 100만 번 재현하고, 매칭된 비율(표본 비율, sample proportion)을 셉니다. 큰 수의 법칙(law of large numbers)에 의해 이 표본 비율은 참값 p로 수렴하는 불편추정량(unbiased estimator)이고, 오차는 통계 이론이 정확히 알려줍니다.

표준오차(standard error) = p(1−p)/N   ⇒   상대오차(relative error) ≈ 1/Np
타깃 확률 pN=100만에서 기대 적중 수상대오차(±1σ)
3%30,000±0.6%
0.07%700±3.8%
0.001%10±32%

이 표가 곧 시뮬레이션의 한계이기도 합니다: 아주 희귀한 타깃일수록 안정된 값을 얻는 데 필요한 횟수가 N ∝ 1/p로 커집니다(±10%를 원하면 N ≈ 100/p). 또 100만 번 재현에는 수 초가 걸리므로, 설정을 바꿀 때마다 실시간으로 돌릴 수도 없습니다.

7. 요약 — 두 숫자를 읽는 법

순간 확률 (기본 표시)정밀 계산 (버튼)
방법수식 계산 (조합 조건은 근사)실제 뽑기 절차를 100만 회 재현
속도수 ms — 실시간 갱신수 초 — 요청 시에만
정확도+8~12% 과대 경향 (최대 ~15–20%)불편추정량 · 오차 ±1/√(Np)
약점조합(공존) 조건의 근사희귀 타깃에서 표본 노이즈(sampling noise)
용도설정 비교 · 실시간 어림최종 기준값

즉 두 숫자가 다른 것은 버그가 아니라 속도와 정밀도의 역할 분담입니다. 빠른 값으로 타깃을 조율하고, 결정했으면 정밀 계산으로 확정값을 확인하세요.