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. 15. 21:35

선형대수학 기본 용어 -상급자편 3-

1. gaussian elimination 1) 주어진 행렬의 $i$번째 행과 $j$번째 행을 뒤바꾼다. 2) 주어진 행렬의 $i$번째 행에 0이 아닌 scalar를 곱한다. 3) $i$번째 행의 scalar배를 다른 $j$번째 행에 더한다. 이 때 $i$번째 행은 그대로 되고 $j$번째 행만 변하는 것이다. 위의 3가지 elementary row operation은 행이 아니라 column에서도 가능하다 elementary row operation으로 주어진 행렬을 변환시켜도 행렬의 rank는 변하지 않는다. elementary row operation의 결과로 주어진 행렬을 변환시켰을 때 얻을 수 있는 행렬로 다음과 같은 조건을 모두 만족시킨 형태를 말한다. 1) 모든 원소가 0인 행은 밑에 있다. ..

선형대수학 기본 용어 -상급자편 2-

1. rank 주어진 행렬의 linear independent인 행의 수를 row rank, linear independent인 열의 수를 column rank라고 부릅니다. linear algebra에서 가장 중요한 결과 중 하나는 row rank와 column rank가 항상 같다는 것으로 그래서 둘 중 하나를 행렬의 rank라고 부릅니다. 기호로 보통 $r _{A} =r(A)=rank(A)$라고 표시합니다. 1) square matrix $A _{nn}$의 rank가 n이면 full rank를 가진다고 하고 모든 행이나 열이 linear independent하다고 부르며 $A _{nn}$이 invertible인 것과 필요충분조건이다. 2) square matrix가 아닌 경우 $A _{pq}$에서 ..

선형대수학 기본 용어 -상급자편 1-

1. linearly independent n개의 0이 아닌 vector $v _{1},v _{2} ,...,v _{n}$의 linear combination은 scalar $a _{1} ,a _{2} ,...,a _{n}$에 대하여 $$\sum _{i=1} ^{n} a _{i} v _{i} =a _{1} v _{1} +a _{2} v _{2} + \cdots +a _{n} v _{n}$$을 말한다. 이때 0이 아닌 vector $v _{1},v _{2} ,...,v _{n}$가 linearly dependent라는 것은 linear combination $a _{1} v _{1} +a _{2} v _{2} + \cdots +a _{n} v _{n}=0$을 만족시키는 적어도 하나가 0이 아닌 scalar..

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 ..