主题:[讨论]求教高手
希望实现的过程。
这是公式a=b*系数*c^row+b*系数*c^row+……+b*系数*C^row
row是杨辉三角的行数。也是公式里面的c的平方数。
我的程序里面用inter做的c,
然后我想用do来多做你组a,来做对比,既改变c即可该改变a。
系数就是杨辉三角的每一列的和。第一列就是第一项的系数,第二列是第二项,依此类推。
b是我宏定义的prin.
然后最后要求一个a/b的比值。
举例:
杨辉三角
1
1 1
1 2 1
1 3 3 1
若计算三行,则a=10,000*(1+1+1)*0.001^1+10,000*(1+2)*0.001^2+10,000*1*0.001^3
若计算四行,则a=10,000*(1+1+1+1)*0.001^1+10,000*(1+2+3)*0.001^2+10,000*(1+3)*0.001^3+10,000*1*0.001^4
希望能做一个能计算出每一行a/b的值并输出,然后能改变c值,在循环输出a/b的值,将a/b的值做成一张二维表。
附上我的程序里面有很多问题,编译过,算法问题很多,输出的全是0.求高手帮解决。
最后出来的结果应该是
0.0010 0.002 0.003……4.999
1 0.0010 0.0020 0.0030 。
2 0.0020 0.0041 0.0062 。
3 0.0031 0.0063 0.0095……
。 。 。 。……
。 。 。 。……
。 。 。 。……
附上我的程序。(里面有算法问题,编译过了)
#include <stdio.h>
#include <stdlib.h>
#define prin 10000
int i,j,q;
float inter=0.001,m;
long double n=1,sum,in,a[100][100];
main()
{
for(i=0;i<100;i++)
{for(j=0;j<100;j++)
{if(i==j) a[i][j]=1;
if(j==0) a[i][j]=1;
else a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
do{
for(j=0;j<100;j++)
{n=n*inter;
for(i=0;i<100;i++)
{q=q+a[i][j];}
in=prin*q*n;
sum=sum+in;
m=sum/prin;
printf("%d",m);
inter=inter+0.001;
printf("\n");
}
}
while(inter<=5.000);
system("pause");
}