主题:递推递归
高手们好!小弟在做计算Hermite多项式Hn(x)之值是遇见了困难!Hn(x)定义如下:
H0(x)=1 //0是H的下标。
H1(x)=2*x
Hn(x)=2*x*Hn(n-1)-2*(n-1)*Hn(n-2), x>1
我编写的程序是:
递推的是:
#include<stdio.h>
long Hn(int n)
{
extern x;
if (n<0)
{
printf("请输入正确合法的数字(正整数)");
exit (-1);
}
else if (n=0)
return 1;
else if (n=1)
return (2*x);
else
return (2*x*Hn(n-1)-2*(n-1)*Hn(n-2));
return (2*x*Hn(n-1)-2*(n-1)*Hn(n-2));
}
int x , t , i;
main()
{
printf("请输入自变量;多项式的项数\n");
scanf("%d%d",&x,&t);
Hn(t);
printf("%l",Hn(t));
}
递归的是:
#include<stdio.h>
int Hn(int i)
{
int n;
extern x;
if (n<0)
{
printf("请输入正确合法的数字(正整数)");
exit (-1);
}
if (n==0)
return 1;
if (n==1)
return 2*x;
for (n=2;n<=i;n++)
{
Hn=2*x*Hn(n-1)-2*(n-1)*Hn(i-2);
Hn(n-2)=Hn(n-1);
Hn(n-1)=Hn;
}
return Hn
}
main()
{
int x,i,t,Hn;
printf("请输入自变量;多项式的项数\n");
scanf("%d%d",&x,&t);
Hn(t);
printf("%l",Hn(t));
}
但是没有结果!我不知道哪里出问题了!请高手们指点指点 !!感激不尽!!
H0(x)=1 //0是H的下标。
H1(x)=2*x
Hn(x)=2*x*Hn(n-1)-2*(n-1)*Hn(n-2), x>1
我编写的程序是:
递推的是:
#include<stdio.h>
long Hn(int n)
{
extern x;
if (n<0)
{
printf("请输入正确合法的数字(正整数)");
exit (-1);
}
else if (n=0)
return 1;
else if (n=1)
return (2*x);
else
return (2*x*Hn(n-1)-2*(n-1)*Hn(n-2));
return (2*x*Hn(n-1)-2*(n-1)*Hn(n-2));
}
int x , t , i;
main()
{
printf("请输入自变量;多项式的项数\n");
scanf("%d%d",&x,&t);
Hn(t);
printf("%l",Hn(t));
}
递归的是:
#include<stdio.h>
int Hn(int i)
{
int n;
extern x;
if (n<0)
{
printf("请输入正确合法的数字(正整数)");
exit (-1);
}
if (n==0)
return 1;
if (n==1)
return 2*x;
for (n=2;n<=i;n++)
{
Hn=2*x*Hn(n-1)-2*(n-1)*Hn(i-2);
Hn(n-2)=Hn(n-1);
Hn(n-1)=Hn;
}
return Hn
}
main()
{
int x,i,t,Hn;
printf("请输入自变量;多项式的项数\n");
scanf("%d%d",&x,&t);
Hn(t);
printf("%l",Hn(t));
}
但是没有结果!我不知道哪里出问题了!请高手们指点指点 !!感激不尽!!