Loading...

합의 차이가 최소가 되는 분할 1편

1. 알고리즘 1 이상의 양의 정수가 리스트 내에 존재 하나의 리스트를 두개의 리스트로 분할하고자 하는데 각 리스트의 수의 합의 차이가 최소가 되도록 분할하고자 한다. 합의 차이의 최솟값을 return 가장 쉬운 방법은 itertools.combinations를 이용해서 완전 탐색을 하는 것 그러나 완전 탐색을 하면 효율성이 매우 떨어짐 먼저 초기 변수를 지정함 mmr은 주어진 전체 리스트 n은 리스트의 인덱스 지정 team1은 첫번째 리스트의 정수 총합 team2는 두번째 리스트의 정수 총합 table은 dynamic programming table def findMinAbsDiff(mmr, n, team1, team2, table): # Base case: if the list becomes empt..

k fold cross validation을 구하는 알고리즘 문제 복기하기

1. 알고리즘 주어진 데이터에 대한 k fold cross validation은... 1) 데이터를 k개의 크기가 같은 부분집합으로 분할한다. 여기서 전체 데이터 개수가 k의 배수가 아니면 마지막 집합은 나머지 데이터로만 채워넣는다 2) k-1개의 부분집합을 training set, 나머지 1개의 부분집합을 test set으로 한다 3) test set을 고르는 방법은 총 k가지가 있다. 4) (training set, test set) 순서로 총 k개의 세트를 하나의 list에 넣어 return from collections import deque def kfold(indices,k): answer = [] deque_data = deque(indices) data_num = len(indices) i..

2021. 11. 9. 02:15

명일방주 픽업을 위한 평균 가챠횟수 4편(일반 헤드헌팅)

3편에 이어서... 1. 일반 이중픽업에서 특정한 오퍼레이터를 얻기 위해 시도하는 평균적인 가챠횟수는? 기본 확률은 6성 2%, 5성 8%, 4성 50%, 3성 40% 이중 픽업에서 픽업 오퍼레이터는 2%의 50%확률로 등장한다. 아와 유넥티스가 등장할 확률은 1%로 동등하게 등장한다면 각각 0.5%확률로 등장 나머지 6성 오퍼레이터는 1%확률로 등장함 이것을 바탕으로 앞에서 사용한 코드에서 확률을 조정하면 된다. pickup_list = ['유넥티스','아','기타 6성','5성','4성','3성'] weight_list = [0.005,0.005,0.01,0.08,0.50,0.40] def try_eunec(pickup_list,weight_list): total_try_num = 0 try_num ..

2021. 11. 9. 01:59

명일방주 픽업을 위한 평균 가챠횟수 3편(한정 헤드헌팅)

2편에 이어서... 명일방주 한정 헤드헌팅 딥드라운 라멘트에서는 6성 오퍼레이터가 36명 등장한다. 33명은 일반 오퍼레이터이고 나머지 2명은 스카디 더 커럽팅 하트, 켈시, 마지막 1명은 W이다. 기본 확률은 6성 2%, 5성 8%, 4성 50%, 3성 40%로 등장한다. 스카디 더 커럽팅 하트와 켈시는 6성 등장 확률의 70%인 1.4%확률로 등장한다. 이들이 동일한 확률로 등장한다면 0.7%, 0.7%확률로 등장한다. 나머지 34명은 W는 나머지 일반 오퍼레이터의 5배 확률로 등장한다. 일반 오퍼레이터가 33명있고 W가 5명있다고 생각하면 총 38명에 대하여 일반 오퍼레이터는 0.6/38=0.01578947% = 약 0.016% W는 0.6*5/38=0.0789473685% = 약 0.079%로 등..

2021. 11. 9. 00:45

명일방주 픽업을 위한 평균 가챠횟수 2편(위기협약)

1편에 이어서.... 1. 위기협약 스펙트럼 작전 헤드헌팅에서 특정한 오퍼레이터를 얻는데 필요한 평균 가챠횟수는? 스펙트럼 작전의 위기협약 헤드헌팅에서는 6성 오퍼레이터로 쏜즈, 위디, 스즈란, 나이팅게일만 등장한다. 기본 확률은 6성 2%, 5성 8%, 4성 50%, 3성 40% 6성 오퍼레이터 4명은 모두 동등한 확률로 등장한다고 가정하면 예를 들어 나이팅게일은 0.5%확률로 등장한다. 여기서 나이팅게일을 획득하기 위해 필요한 평균적인 가챠 횟수는? pickup_list = ['쏜즈','위디','스즈란','나이팅게일','5성','4성','3성'] weight_list = [0.005,0.005,0.005,0.005,0.08,0.50,0.40] def try_night(pickup_list,weight..

2021. 11. 9. 00:15

명일방주 픽업을 위한 평균 가챠횟수 1편(6성 획득)

1. 기본 가정 모바일 게임 명일방주 헤드헌팅 시스템은 기본적으로 다음과 같다. 1. 3성 등장 확률 40%, 4성 등장 확률 50% 5성 등장 확률 8%, 6성 등장 확률 2% 2. 가챠 시도 횟수 1회부터 50회까지는 6성 등장 확률이 2%이고 51회부터는 6성 등장 확률이 2%p씩 증가하여 99회에는 확정적으로 6성을 획득함(100%) 3. 가챠 시도 중 6성을 획득하는 순간 2.의 확률 버프는 처음부터 초기화됨 4. 처음부터 10회 이내에 5성 이상 캐릭터를 확정적으로 획득함 1회부터 9회까지 5성 이상을 획득하지 못했다면 10회때 98%확률로 5성을 획득하고 2%확률로 6성을 획득함 이 보너스는 가챠에서 오직 1번만 적용됨 여러가지 경우에 따라 평균적인 가챠횟수를 알아보자 2. 상황 100만명의..