본문 바로가기
데이터 분석/머신러닝

Numpy의 함수를 사용한 서바이벌 게임

by 너굴맨_ 2022. 2. 24.

Numpy의 함수를 사용한 서바이벌 게임

 

이 장에서는 데이터 분석에서 주로 사용하는 Numpy의 함수를 사용하여 드라마 오징어게임 속 상황처럼 456개의 숫자 중 하나의 숫자가 살아남을 때까지 라운드를 진행합니다. 각 라운드 별 게임은 Numpy의 함수 활용하여 진행한다.

 

출처: 넷플릭스 오리지널 드라마 오징어 게임/ 사진 = 넷플릭스

 

- Numpy란?

Numpy는 파이썬에서 선형대수 기반의 프로그램을 쉽게 만들 수 있도록 지원하는 패키지이며 루프를 사용하지 않고 대량의 데이터를 배열 연산을 통해 빠른 연산속도를 보장하는 여러 함수들을 지원합니다.

 

- 플레이어 모집

 

1~456번까지의 인원을 한 곳에 모집한다.

 

- 사용되는 함수
* np.arange : numpy의 ndarray를 생성하는 방법으로 np.arnage(n,m)로 호출할 경우 배열에 n~m-1까지의 호출

 

- Round1 :7의 배수와 11의 배수 번호는 제외한다.

게임을 통해 7의 배수와 11의 배수의 번호를 갖고 있는 사람이 탈락했다.

 

- 사용되는 함수

Numpy 인덱스 기능, np.r_ (같은 행으로 묶기)

- Round2 : 1/3 초이스

눈앞에 3개의 문이 있고 그 중 하나의 문을 선택하여 통과일 경우 다음 라운드로 갈 수 있다.

- 사용되는 함수

  •  Numpy의 난수 함수
    np.random.shuffle : 배열의 값을 무작위로 섞는다.
    np.random.randint(n,m) : n부터 m-1 값 중 하나를 뽑는다.
  • Numpy의 분리 함수
    np.array_split(배열, 분리 갯수)

- Round3: 생존자 중 가장 큰 숫자를 가진 그룹만 생존

살아남은 그룹을 12개의 그룹으로 나눈 뒤 그룹 내 가장 큰 값이 있는 그룹이 살아남는다.

- Round4 : 배열의 맨뒤 3명만 살아남기

배열의 맨 뒤의 3명만 살아남는다.

 

- Round 5: 나머지가 가장 큰 사람

마지막 라운드로 랜덤으로 발생된 값을 나누어서 나머지가 가장 큰 수가 최후의 생존자가 살아남는다. 단 아래의 과정에서 가장 큰 값이 나오지 않는 경우 가장 큰 값이 선정될 때까지 반복하여 진행한다.

 

- 사용되는 함수

  • Numpy 수학 함수
    np.mod(n, num) : n을 num으로 나눈 나머지 값

- 최종 승자

Numpy 함수에 대한 더 많은 것을 알고 싶다면 아래의 사이트를 참조하길 바랍니다.

 

- Reference

https://codetorial.net/numpy/functions/index.html

https://datascienceschool.net/01%20python/03.00%203%EC%9E%A5%20%EB%84%98%ED%8C%8C%EC%9D%B4%20%EB%B0%B0%EC%97%B4%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D.html

 

3장 넘파이 배열 프로그래밍 — 데이터 사이언스 스쿨

.ipynb .pdf to have style consistency --> Contents

datascienceschool.net

 

NumPy 다양한 함수들 - Codetorial

NumPy의 다양한 함수의 사용법에 대해 소개합니다.

codetorial.net

댓글