Zettelkasten/Permanent(퍼미넌트)/등차수열, 등비수열 공식.md

등차수열, 등비수열 공식

등차수열의 합

def arithmetic_sum(a, l, n):
    """
    a: 첫째항
    l: 마지막항
    n: 항의 개수
    """
    return n * (a + l) / 2
    
# 1부터 n까지의 홀수의 합
def odd_sum(n):
    """
    n: n번째 홀수까지
    예) n=5 → 1+3+5+7+9
    """
    a = 1          # 첫째항
    l = 2*n - 1    # n번째 홀수 (마지막항)
    return arithmetic_sum(a, l, n)
    
# 2부터 n번째 짝수까지의 합
def even_sum(n):
    """
    n: n번째 짝수까지
    예) n=5 → 2+4+6+8+10
    """
    a = 2          # 첫째항
    l = 2*n        # n번째 짝수 (마지막항)
    return arithmetic_sum(a, l, n)
    
    

등비수열의 합

def geometric_sum(a, r, n):
    """
    a: 첫째항
    r: 공비
    n: 항의 개수
    """
    if r == 1:
        return a * n
    else:
        return a * (r**n - 1) / (r - 1)

제곱의 합

# 제곱의 합 공식
def sum_of_squares(n):
    """
    1² + 2² + 3² + ... + n²
    """
    return n * (n + 1) * (2*n + 1) / 6
 
# 홀수 제곱의 합
def odd_square_sum(n):
    """
    1² + 3² + 5² + ... + (2n-1)²
    n: n번째 홀수까지
    """
    return n * (2*n - 1) * (2*n + 1) / 3
 
# 짝수 제곱의 합
def even_square_sum(n):
    """
    2² + 4² + 6² + ... + (2n)²
    n: n번째 짝수까지
    """
    return 2 * n * (n + 1) * (2*n + 1) / 3
 
# 사용 예시
print("처음 5개 홀수 제곱의 합: 1²+3²+5²+7²+9²")
print(f"= 1+9+25+49+81")
print(f"합 = {odd_square_sum(5)}")  # 165
 
print("\n처음 5개 짝수 제곱의 합: 2²+4²+6²+8²+10²")
print(f"= 4+16+36+64+100")
print(f"합 = {even_square_sum(5)}")  # 220
 
# 검증
print(f"\n홀수 직접 계산: {1**2 + 3**2 + 5**2 + 7**2 + 9**2}")  # 165
print(f"짝수 직접 계산: {2**2 + 4**2 + 6**2 + 8**2 + 10**2}")  # 220

댓글

첫 번째 댓글을 남겨보세요.