본문 바로가기

군수열 본문

파이썬/파이썬과 기초수학

군수열

jaegomhoji 2022. 1. 25. 20:37

* 여러 개의 항을 묶었을 때 ( 군 ), 규칙성을 가지는 수열 

* 정리는 노트에 기록함

* 공식은 없으며, 특정번째의 항을 찾을때, 각 군의 개수를 통해서 위치와 값을 구할 수 있다 

 

* jupyter notebook ( python 3 )

* 조건문 활용 방법

조건문의 시작은 i != n 이니 , 당연히 else 문이 먼저 돌아가고( 식별을 위해 증가로 표시 해놓음 ),  

range ( 1 ~ n+1 ) , 즉 i가 1 부터 n까지 돌아가고 있는 루프문 하에서

nCnt는 계속 1씩 증가,  

else > else .. > if , n+=1이 되어 

for 문의 range는 1, n+1이 된다. 

i값 역시 n까지의 값에 따라서 종료되는 수가 1 씩 증가,

 

i=1 / n=1 / nCnt=1

i=1, 2 / n=2 nCnt=3 

i=1, 2, 3  / n=3 nCnt=6

i=1, 2, 3, 4 / n=4 nCnt=10

.

.

nCnt 가 inputN보다 컸을 때의 값은, 각 루프의 i번째이며 해당 결과를 SearchN 객체에 할당 

이후 결과를 충족 했으니 while flag:False 로 escape , 이후 for 문 break 

 

무한 루프 방지를 위해 n +=1 로 종료 

 

<< 복붙용 코드 >>

 

* 예제 1

inputN = int(input("n항을 입력:"))

flag = True # 무한반복 시행 
n = 1; nCnt = 1; searchN = 0

# n = 1 , 1군에서 시작 
# nCnt <- 내가 찾고자 하는 전체 항의 수를 계속 카운트 
# searchN <- 

# 한 군 안에서 반복하는 for 문

while flag:
    
    for i in range(1,(n+1)): # range(1 ~ n+1까지는) n까지 포함해서 세고 종료 , 각 군에 포함된 항 만큼 반복문 시행 
        if i==n:
            print('끝{}'.format(i), end=' ') # end=' ' 문자열 개행 \N을 막아주는 처리 
        else:
            print('증가{}'.format(i), end=' ')
            
        nCnt += 1
        
        if (nCnt > inputN): # 내가 원하는 항의 수까지 셌다면 종료해야 한다 
            searchN = i
            flag = False # while 문 종료 
            break # for문에 대한 break 
            
    print()
    n += 1 
    
print('{}항:{}'.format(inputN, searchN))   

 

 

 

* 예제 2

inputN = int(input("n항을 입력:"))

flag = True # 무한반복 시행 
n = 1; nCnt = 1; searchNC = 0; searchNP = 0 

while flag:
    
    for i in range(1,(n+1)): # range(1 ~ n+1까지는) n까지 포함해서 세고 종료 , 각 군에 포함된 항 만큼 반복문 시행 
        if i==n:
            print('끝{}/{}'.format(i,(n - i + 1)), end=' ') # end=' ' 문자열 개행 \N을 막아주는 처리 
        else:
            print('증가{}/{}'.format(i,(n - i + 1)), end=' ')
            
        nCnt += 1
        
        if (nCnt > inputN): # 내가 원하는 항의 수까지 셌다면 종료해야 한다 
            searchNC = i
            searchNP = n - i + 1
            flag = False # while 문 종료 
            break # for문에 대한 break 
            
    print()
    n += 1 
    
print('{}항:{}/{}'.format(inputN, searchNC, searchNP))   

'파이썬 > 파이썬과 기초수학' 카테고리의 다른 글

조합  (0) 2022.01.26
순열  (0) 2022.01.25
팩토리얼  (0) 2022.01.25
피보나치 수열  (0) 2022.01.25
계차수열  (0) 2022.01.25
Comments