def partial_difference_quotient(f, v, i, h=0.001):
    """
    (f([x1, ..., xi + h, ..., xn]) - f([x1, ..., xi, ..., xn])) / h

    :param f: f(vector) = float인 함수
    :param v: 기울기(gradient)를 계산할 점의 위치 - 벡터(리스트)
    :param i: 기울기(gradient)를 계산할 성분의 인덱스 - 정수
    :param h: i번째 성분의 변화량
    :return: 편미분 결과 -> i번째 성분 방향의 gradient
    """
    # w = [v_j + (h if i == j else 0)
    #      for j, v_j in enumerate(v)]
    w = []
    for j, v_j in enumerate(v):
        if j == i:
            v_j += h
        w.append(v_j)
    return (f(w) - f(v)) / h