1、 求解下列递归关系 a) x(n)=x(n-1)+5 其中n>1,x(1)=0 b) x(n)=3x(n-1) 其中n>1,x(1)=4 c) x(n)=x(n-1)+n 其中n>0,x(0)=0 d) x(n)=x(n/2)+n 其中n>1,x(1)=1(对于n=2k的情况来解)

1、 求解下列递归关系 a) x(n)=x(n-1)+5 其中n>1,x(1)=0 b) x(n)=3x(n-1) 其中n>1,x(1)=4 c) x(n)=x(n-1)+n 其中n>0,x(0)=0 d) x(n)=x(n/2)+n 其中n>1,x(1)=1(对于n=2k的情况来解)


参考答案和解析
B

相关考题:

以下程序的输出结果是 【 17 】 。int fun(int *x,int n){ if(n==0) return x[0];else return x[0]+fun(x+1,n-1);}main( ){ int a[]={1,2,3,4,5,6,7}; printf("%d\n",fun(a,3));}

以下程序中函数 f 的功能是在数组 x 的 n 个数 ( 假定 n 个数互不相同 ) 中找出最大最小数 , 将其中最小的数与第一个数对换 , 把最大的数与最后一个数对换 . 请填空 .#include stdio.hviod f(int x[],int n){ int p0,p1,i,j,t,m;i=j=x[0]; p0=p1=0;for(m=0;mn;m++){ if(x[m]i) {i=x[m]; p0=m;}else if(x[m]j) {j=x[m]; p1=m;}}t=x[p0]; x[p0]=x[n-1]; x[n-1]=t;t=x[p1]; x[p1]= _[14]_______ ; _[15]_______ =t;}main(){ int a[10],u;for(u=0;u10;u++) scanf("%d",a[u]);f(a,10);for(u=0;u10;u++) printf("%d",a[u]);printf("\n");}

●试题四阅读下列程序说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。【程序4.1说明】"背包问题"的基本描述是:有一个背包,能盛放的物品总重量为S,设有N件物品,其重量分别为w1,w2,...,wn,希望从N件物品中选择若干件物品,所选物品的重量之和恰能放入该背包,即所选物品的重量之和等于S。如下程序均能求得"背包问题"的一组解,其中程序4.1是"背包问题"的递归解法,而程序4.2是"背包问题"的非递归解法。【程序4.1】#includestdio.h#define N 7#define S 15int w[N+1]={0,1,4,3,4,5,2,7};int knap(int s,int n){ if(s==0)return 1;if (s0||(s0 n1))return 0;if( (1) )){printf(″%4d″,w[n]);return 1;}return (2) ;}main(){if( knap(S,N))printf(″OK!\n″);else printf(″N0!\n″);}【程序4.2】#includestdio.h#define N 7#define S 15typedef struct {int s;int n:int job;} KNAPTP;int w[N+1]={0,1,4,3,4,5,2,7};int knap (int s,int n);main( ) {if (knap (S,N)) printf (″OK!\n″);else printf (″NO!\n″);}int knap (int s,int n){ KNAPTP stack[100],x;int top,k,rep;x.s=s;x.n=n;x.job=0;top=l;stack[top]=x;k=0;while( (3) ) {x=stack [ top ];rep=1;while ( !k rep ) {if (x.s==0)k=1;/*已求得一组解*/else if (x.s0 || x.n =0)rep=0;else{x.s= (4) ;x.job=1;(5) =x;}}if(!k){rep=1;while(top=1rep){x=stack[top--];if(x.job==1){x.s+=w[x.n+1];x.job=2;stack[++top]=x;(6) ;}}}}if(k){/*输出一组解*/while(top=1){x=stack[top--];if(x.job==1)printf(″%d\t″,w[x.n+1]);}}return k;}

阅读下列程序说明和C++代码,将应填入(n)处。【说明】“背包问题”的基本描述是:有一个背包,能盛放的物品总重量为S,设有N件物品,其重量分别为w1;w2,……,wn,希望从N件物品中选择若干件物品,所选物品的重量之和恰能放入该背包,即所选物品的重量之和等于S。如下程序均能求得“背包问题”的一组解,其中程序4.1是“背包问题”的递归解法,而程序4.2是“背包问题”的非递归解法。【程序4.1】include<stdio.h>define N 7define S 15int w[N+1]={0,1,4,3,4,5,2,7};int knap(int s,int n){ if(s==0)return 1;if(s<0||(s>0 n<1))return 0;if((1)))|printf("%4d",w[n]);return 1;} return (2);}main(){if(knap(S,N))printf("OK!\n");else printf("NO!\n");}【程序4.2】include<stdio.h>define N 7define S 15typedef struct{int s;int n:int job;} KNAPTP;int w[N+1]={0,1,4,3,4,5,2,7};int knap(int s,int n);main(){if(knap(S,N))printf("OK!\n");else printf("NO!\n");}int knap(int s,int n){ KNAPTP stack[100],x;int top,k,rep;x.s=s;x.n=n;x.job=0;top=|;Stack[top]=x;k=0;while((3)){x=Stack[top];rep=1;while(!k rep){if(x.s==0)k=1;/*已求得一组解*/else if(x.s<0||x.n <=0)rep=0;else{x.s=(4);x.job=1;(5)=x;}}if(!k){rep=1;while(top>=1rep){x=stack[top--];if(x.job==1){x.s+=W[x.n+1];x.job=2;Stack[++top]=x;(6);}}}}if(k){/*输出一组解*/while(top>=1){x=staCk[top--];if(x.job==1)printf("%d\t",w[x.n+1]);}}return k;}

以下程序的输出结果是includein[fun(int n,int *s){int n,f2;if(n==0‖n==1)*s=1;else{ 以下程序的输出结果是 #include<stdio.h> in[fun(int n,int *s) {int n,f2; if(n==0‖n==1) *s=1; else {fun(n-1,f1); fun(n-2,f2); *s=f1+f2; }} void main() { int x; fun(6,x); pfintf("\n%d",x);}A.7B.13C.9D.10

一元线性回归模型,Yi=β0+β1X1+μi(i=1,…,n)中,总体方差未知,检验H0:β1=0时,所用的检验统计量服从( )。A.F(1,n-2)B.t(n-1)C.F(1,n-1)D.t(n)

阅读下列程序说明和C代码,将应填入(n)处的字句写在对应栏内。【说明】“背包问题”的基本描述是:有一个背包,能盛放的物品总重量为S,设有N件物品,其重量分别为w1,w2,…,wn。希望从N件物品中选择若干件物品,所选物品的重量之和恰能放入该背包,即所选物品的重量之和等于S。如下程序均能求得“背包问题”的一组解,其中程序1是“背包问题”的递归解法,而程序2是“背包问题”的非递归解法。【程序1】include<stdio.h>define N 7define S 15int w[N+1]={0,1,4,3,4,5,2,7};int knap(int s, int n){if(s==0) return 1;if(s<0 || (s>0 n<1))return 0;if((1)){/*考虑物品n被选择的情况*/printf("%4d",w[n]);return 1;}return (2);/*考虑不选择物品n的情况*/}main(){if(knap(S,N))printf("OK!\n");else printf("N0!\n");}【程序2】include<stdio.h>define N 7define S 15typedef struct{int s;int n;int job;}KNAPTP;int w[N+1]={0,1,4,3,4,5,2,7};int knap(int s, int n);main(){if(knap(S,N)) printf("0K!\n");else printf("N0!\n");}int knap(int s, int n){KNAPTP stack[100],x;int top, k, rep;x.s=s;x.n=n;x.job=0;top=1; stack[top]=x;k=0;while( (3) ){x=stack[top];rep=1;while(!k rep){if(x.s==0) k=1;/*已求得一组解*/else if(x.s<0 || x.n<=0) rep=0;else{x.s=(4);x.job=1;(5)=x;}}/*while*/if(!k){rep=1;while(top>=1 rep){x=stack[top--];if(x.job==1){x.s +=w[x.n+1];x.job=2;stack[++top]=x;(6);}/*if*/}/*while*/}/*if*//*while*/if(k){&nbs

下列程序的输出结果是______。long fun5(int n)( long s;if((n==l)‖(n==2))s=2;elses=n+fun5(n-1);return(s);}main(){ long x;x=fun5(4);printf(%1d\n",x);

下面程序的执行结果是【】。include void main(){int n=0,x=0;do{n++;if(n%3==2do{n++;if(n%3==2n%5==3n%7==2)x=1;}while(x!=1);cout<<"n=" <<n<<end1;}

设随机变量X~t(n)(n>1),则(54)。A.Y~x2(n)B.Y~x2(n-1)C.Y~F(n,1)D.Y~F(1,n)

阅读下列函数说明和C代码,填入(n)处。[说明]以下C语言程序实现了生成从里到外是连续的自然数排列的回旋矩阵,矩阵形式如下:7 6 5 168 1 4 159 2 3 1410 11 12 13程序的变量说明如下:x1:矩阵上边界;x2:矩阵下边界;y1:矩阵左边界;y2:矩阵右边界;s:数组元素升降标记,s等于1为升,s等于-1为降;a[]:存放矩阵元素的数组。仔细阅读C语言程序源码,将(n)处的语句补充完整。(注:每处仅一个语句)[C程序]include<stdio.h>void main ( ){const int N=20;int i=0,j=0,a[N][N],n;int m,x1,x2,y1,y2,s;while (1){Printf ("\ninput matrix row N( N>=2): ");scanf ("%d",n);printf ("\n");if (n>=2)break;}m=n*n;x1=0; y1=0; x2=n; y2=n;if(n%2==0){j=n-1; y2=n-1; s=1;}else{i=n-1; y1=1; s=-1; }while (1){if (s==1){for (i; i<x2; i++) a[i][j]=m--;i--;j--;(1)for (j;j>=y1;j--) a[i][j]=m--;j++;i--;y1++;(2)}else{for (i;i>=x1;i--)a[i][j]=m--;i++;j++;(3)for (j;j<y2;j++)(4)(5)i++;(6)S=i;}if (m<1) break;}for (i=O;i<n; i++){for (j=O;j<n;j++)printf ("%6d",a[i][j]);printf ("\n");}printf ("\n");}

请将下面程序补充完整。public class PowerCalc{public static void main(String[]args){double x=5.0;System. out. println(x+"to the power 4 is"+power(x, 4));System. out. println("7. 5 to the power 5 is"+power(7.5, 5));System. out. println("7.5 to the power 0 is"+power(7.5, 0));System. out. println("10 to the power -2 is"+power(10, -2));}static double【 】 (double x, int n){if(n>1)return x * power(x, n-1);else if(n<0)return 1.0/power(x, -n);elsereturn n==0 ? 1.0:x;}}

等式[x]补+[Y]补=[x+Y]补在满足条件(92)时成立,其中X、Y是用n个二进制位表示的带符号纯整数。A.-2n≤(X+Y)≤2n-1B.-2n-1≤(X+Y)<2n-1C.-2n-1-1≤(X+Y)≤2n-1D.-2n-1≤(X+Y)<2n

以下程序的输出结果是()。includeint fun(int n,int *s){ int f1,f2;if(n==0||n==1)*s= 以下程序的输出结果是( )。 #include<stdio.h> int fun(int n,int *s) { int f1,f2; if(n==0||n==1) *s=1; else { fun(n-1,f1); fun(n-2,f2); *s=f1+f2; } } void main() { int x; fun(6,x); printf("\n%d" ,x);}A.7B.13C.9D.10

有下列程序: int fun(int n) { if(n==1)}return 1; else return(n+fun(n-1)); } main { int x; scanf("%d",&x);x=fun(x);printf("%d\n",x); ) 执行程序时,给变量x输入10,程序的输出结果是( )。A.55B.54C.65D.45

有下列程序: int fun(int n) {if(n= =1))return l; else return(n+fun(n-1)): } main( ) { int x; seanf("%d",x);x=fun(x);printf("%d\n",x); } 执行程序时,给变量x输入l0,程序的输出结果是( )。A.55B.54C.65D.45

下列程序段的执行结果为______ 。 Dim A(4) N= 3 A(1) =1 For K=0 To N-1 For L=1 To K+1 X=K+2 -L A(X)=A(X)+A(X-1) If K<N-1 Then Exit For Print A(X); Next L Next KA. 1 2 1B.1 2 3C.2 4 6D.1 3 1

以下程序的输出结果是#includestdio.hint fun(int n,int *s){ int f1,f2;if(n==0||n==1)*s=1;else{ fun(n-1,f1);fun(n-2,f2);*s=f1+f2;} }void main(){ int x;fun(6,x);printf("\n%d",x);}A.7B.13C.9D.10

设X~N(μ,σ2),σ未知,xi为样本(i=1,2,…,n),H0:μ=μ0,Hi:μ≠μ0,a为显著性水平,则接受域为( )。A.t<t1-a(n-1)B.t>ta(n-1)C.D.以上都不对

A.X2(n-1)B.X2(n)C.t(n-1)D.t(n)

A. X2(n-1) B.X2(n)C.t(n-1)D. t(n)

设函数厂(x)=(ex一1)(e2x一2)…(enx-n),其中n为正整数,则.f'(0)=( )A.(一1)n-1(n一1)! B.(一1)n(n一1)! C.(-1)”1!D.(-1)7h 1

设(X1,X2,…,X)是抽自正态总体N(0,1)的一个容量为n的样本,记,则下列结论中正确的是()。A、服从正态分布N(0,1)B、n服从正态分布N(0,1)C、服从自由度为n的x2分布D、服从自由度为(n-1)的t分布

已知X-N(-3,1),Y-N(2,1),且X,Y相互独立,记Z=X-2Y+7则Z-().A、N(0,5)B、N(0,12)C、N(0,54)D、N(-1,2)

若f(x)|x^(2^n-1)-1,则属于a的一个周期是()。A、2^n+2B、2^n+1C、2^n-1D、3^n

单选题设(X1,X2,…,X)是抽自正态总体N(0,1)的一个容量为n的样本,记,则下列结论中正确的是()。A服从正态分布N(0,1)Bn服从正态分布N(0,1)C服从自由度为n的x2分布D服从自由度为(n-1)的t分布

单选题若f(x)|x^(2^n-1)-1,则属于a的一个周期是()。A2^n+2B2^n+1C2^n-1D3^n

单选题设有n个数按从大到小的顺序存放在数组x中,以下能使这n个数在x数组中的顺序变为从小到大的是(  )。Afor(i=0;in/2;i++){ t=x[i]; x[i]=x[n-i-1]; x[n-i-1]=t;}Bfor(i=0;in;i++){ t=x[i]; x[i]=x[n-i-1]; x[n-i-1]=t;}Cfor(i=0;in/2;i++){ t=x[i]; x[i]=x[n-i+1]; x[n-i+1]=t;}Dfor(i=0;in/2;i+=2){ t=x[i]; x[i]=x[n-i-1]; x[n-i-1]=t;}