팁과 노하우

전체보기

모바일 상단 메뉴

본문 페이지

[실험] 문어 목표레벨별 기댓값

Onenap
댓글: 6 개
조회: 29886
추천: 5
2025-02-15 13:25:37
선요약

기댓값 최대는 문어 7렙까지

4레벨 남은 횟수 1일때,
5레벨 남은 횟수 1~5일땐 스탑

기대 획득 재화 => 상급exp교환권: 2235개, 기운: 4470(솔 에르다 4.47개), 조각: 112
------------------------------------------

(수정)

2레벨에선 강화실패시 1레벨로 떨어지지 않는다고해서 수정
문어가 도망쳤을때 보상을 0으로 설정
------------------------------------------

https://www.inven.co.kr/board/maple/5974/4687904

이분꺼 글을 보고 목표레벨별 기댓값도 궁금해져서 구해봤습니다.
각 목표레벨별 문어 100000마리를 시뮬레이션 했을때 결과입니다.


출력된 보상값은 조각개수 이지만, 기운과 exp쿠폰도 조각과 같은 비율입니다.

시뮬레이션 코드에 오류가 없다면
7렙까지만 목표로 강화하는게 기댓값이 제일 높네요.

4주간(12마리) 7렙을 목표로 강화한다면 대부분의 유저들의 문어는
6번 성공(52.1%)
5번 실패 = 2~6렙(40%) 
한마리의 심술쟁이 문어 1마리(7.8%)가 도망가겠네요.
(놀랍게도 유저 7000명중에 1명은 첫 문어를 100회 강화시켜도 5레벨에 도달시키지 못하는 경험을 합니다)

얻는 재화 기댓값은
상급exp교환권: 2235
기운: 4470(솔 에르다 4.47개)
조각: 112

import numpy as np
import pandas as pd

# 시뮬레이션 설정
num_octopuses = 100000  # 문어 개수
max_attempts = 100  # 최대 강화 시도 횟수

# 강화 확률 테이블 (성공 확률, 실패 확률, 도망 확률, 보상)
upgrade_data = {
    1: (1.00, 0.00, 0.00, 0),
    2: (0.60, 0.40, 0.00, 1),
    3: (0.50, 0.50, 0.00, 3),
    4: (0.40, 0.60, 0.00, 6),
    5: (0.307, 0.693, 0.00, 10),
    6: (0.205, 0.765, 0.03, 15),
    7: (0.103, 0.857, 0.04, 50),
    8: (0.05, 0.90, 0.05, 150),
    9: (0.00, 0.00, 0.00, 300),  # 목표 레벨 도달 시 강화 종료
}

# 목표 레벨별 통계 저장
results = []

for target_level in range(2, 10):
    total_rewards = 0
    total_attempts = 0
    reached_target = 0
    failed_to_reach = 0
    total_escapes = 0

    for _ in range(num_octopuses):
        level = 1
        attempts = 0
        escaped = False

        while level < target_level and attempts < max_attempts:
            success_rate, fail_rate, escape_rate, _ = upgrade_data[level]
            rand_val = np.random.rand()

            if rand_val < success_rate:
                level += 1
            elif rand_val < success_rate + fail_rate:
                if level >= 3:
                    level -= 1
            else:
                total_escapes += 1
                escaped = True
                break

            attempts += 1

        total_attempts += attempts
        if not escaped:
            total_rewards += upgrade_data[level][3]

        if level >= target_level:
            reached_target += 1
        elif not escaped:
            failed_to_reach += 1

    avg_reward = total_rewards / num_octopuses
    avg_attempts = total_attempts / num_octopuses

    results.append([
        target_level, avg_reward, avg_attempts,
        reached_target, failed_to_reach, total_escapes
    ])

# 결과 테이블 생성 및 출력
df_results = pd.DataFrame(results, columns=["목표 레벨", "평균 보상", "평균 강화 횟수", "성공", "실패(도망제외)", "도망"])
print(df_results)


코드는 챗피티가 만들어줬습니다.
오류가 있으면 알려주세용

+
현재 레벨과 남은 횟수 수정해서 시뮬돌려보니까

4레벨 남은 횟수 1일때,
5레벨 남은 횟수 1~5일때는 멈추고 그대로 수령하는게 기댓값이 더 좋은 것 같습니다.

심지어 7레벨까지 스트레이트로 성공해서 강화횟수가 94회 남았더하더라도
8레벨을 목표로 계속 강화한다면 기댓값은 32.9개,
8레벨 강화 1트만 시도한다고 해도(실패하면 7렙복구 시도) 기댓값은 44.5개로
7레벨 50개보다 높아지지 않아서, 기댓값으론 얌전히 7렙보상을 타는게 낫습니다.

Lv1 Onenap

모바일 게시판 하단버튼

댓글

새로고침
새로고침

모바일 게시판 하단버튼

지금 뜨는 인벤

더보기+

모바일 게시판 리스트

모바일 게시판 하단버튼

글쓰기

모바일 게시판 페이징

최근 HOT한 콘텐츠

  • 메이플
  • 게임
  • IT
  • 유머
  • 연예
AD