Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬에서 주어진 반복 관계의 n번째 항 찾기


bn이라는 일련의 숫자가 있다고 가정하고 이것은 b1=1 및 bn+1/bn=2n과 같은 반복 관계를 사용하여 표현됩니다. 주어진 n에 대해 log2(bn)의 값을 찾아야 합니다.

따라서 입력이 6과 같으면 출력은 log2(bn) =(n * (n - 1)) / 2 =(6*(6-1))/2 =15와 같이 5가 됩니다.

이 관계를 다음과 같이 풀면 이 문제를 해결할 수 있습니다. -

bn+1 /bn =2 n

bn /bn-1 =2 n-1

b2 /b1 =2 1 , 위의 모든 것을 곱하면 얻을 수 있습니다.

(bn+1 /bn ).(bn /bn-1 )……(b2 /b1 ) =2 n + (n-1)+…..+1

따라서 bn+1 /b1 =2 n(n+1)/2

1 + 2 + 3 + ...... + (n-1) + n =n(n+1)/2

따라서 bn+1 =2 n(n+1)/2 * b1; 초기값 b1 =1

따라서 bn+1 =2 n(n+1)/2

n에 (n+1)을 대입하면 다음을 얻습니다.

bn =2 n(n-1)/2

양변에 로그를 취하면 다음을 얻습니다.

로그2 (bn ) =n(n-1)/2

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

def add_upto_n(n):
   res = (n * (n - 1)) / 2
   return res
n = 6
print(int(add_upto_n(n)))

입력

6

출력

15