假设bn是一个数字序列,由递归关系b 1 = 1和b n + 1 / b n = 2 n表示。我们的任务是确定给定n的log 2(b n)的值。
6
输出结果
15
log 2(b n)=(n *(n-1))/ 2 =(6 *(6-1))/ 2 = 15
200
输出结果
19900
b n + 1 / b n = 2 n
b n / b n-1 = 2 n-1
。
。
。
b 2 / b 1 = 2 1,我们将以上所有相乘以获得
(b n + 1 / b n)。(b n / n-1)……(b 2 / b 1)= 2 n +(n-1)+………。+ 1
因此,b n + 1 / b 1 = 2 n(n + 1)/ 2
因为我们知道1 + 2 + 3 +………。+(n-1)+ n = n(n + 1)/ 2
因此,b n + 1 = 2 n(n + 1)/ 2。b 1 ; 假设初始值b 1 = 1
所以b n + 1 = 2sup> n(n + 1)/ 2
现在用(n + 1)代替n,我们得到
b n = 2 n(n-1)/ 2
取两边的日志,我们得到,
对数2(b n)= n(n-1)/ 2
// C++ program to find nth term of //给定的递归关系 #include <bits/stdc++.h> using namespace std; //显示函数以返回所需值 int sum(int n1){ //现在得到答案 int ans1 = (n1 * (n1 - 1)) / 2; //现在返回答案 return ans1; } //驱动程序 int main(){ //获取n的值 //整数n = 6; int n = 200; //使用函数调用来打印结果 cout << sum(n); return 0; }
输出结果
19900