[R] 수열(progression) 구현 하기 (1,2,5,10,20,50,100,...,5x10^4)

해당 포스트에서는 R을 이용하여 수열(progression) 구조를 프로그래밍 하는 방법을 설명합니다.

1. INTRO

네이버 지식iN에서 지식을 공유하고 있습니다. 간단한 질문들은 해당 질문에 바로 답변을 드리지만 질문의 내용이 유익하거나 추가 설명이 필요한 경우에는 포스팅을 작성하여 공유드리고 있습니다.

2. 질문

▲ 네이버 지식인 질문

3. 풀이

해당 문제 풀이를 위해 아래 절차로 접근하였습니다.

  1. 수열 구조(패턴) 분석
  2. 코드 구현(프로그래밍) 및 결과 검증

1. 수열 구조(패턴) 분석

주어진 문제의 수열을 분해하여 구조(패턴)을 분석해 보면, 나열된 숫자들의 첫 글자가 1,2,5가 반복적으로 나타나고 있고 단위가 증가하는 것을 알 수 있습니다.

▲ 수열 구조 분석

이를 기반으로 정리해보면 아래와 같이 일반항을 a x 10^n로 도출할 수 있습니다. 이번 문제는 마지막 항에서 일반항에 대한 힌트를 주어 쉽게 풀 수 있었습니다.

▲ 일반항 도출

2. 코드 구현(프로그래밍) 및 결과 검증

위 수열을 프로그래밍하면서 a, n, 일반항을 아래와 같이 정의하였습니다.

  • n_powers : n이 가질 수 있는 값들을 담은 변수
  • nums : a가 가질 수 있는 값들을 담은 변수
  • my_progression : 일반항의 계산식을 담은 변수

R 코드 및 결과

n_powers <- 0:4
nums <- c(1,2,5)

for (n in n_powers){

  for (a in nums){

    my_progression <- a * 10^n

    cat(my_progression, " ")

  }
}
## 1  2  5  10  20  50  100  200  500  1000  2000  5000  10000  20000  50000 

4. 마무리

이번 포스트에서는 R을 이용하여 수열(progression) 구조를 프로그래밍 하는 방법을 설명하였습니다. 일반적인 수열 문제는 위와 같이 결과를 출력하는 것이 아닌, 수열합을 구하여 복잡한 문제의 해를 구하는데 사용되며, 이번 설명을 통해 기본 이해를 높이는데 도움이 되셨으면 좋겠습니다.

5. 연관링크

[1] [R] 행렬곱 함수 직접 구현하기 (feat. For반복문)


banner-request-analysis