离开大学好久了,多项式都不会了,达人帮忙

shoushii 2008-07-07 01:11:50
求该多项式的结果:

a0=a1=1
a2=2
...全文
338 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
Code従業員 2008-07-08
  • 打赏
  • 举报
回复
不好意思,返回应该是 1/2 的sum

我上面的那公式用中文打显得好乱,大虾整理下吧。
Code従業員 2008-07-08
  • 打赏
  • 举报
回复

//由上面的公式可得程序
//设元素都为整数
int[] a = new int[]{...};
int sum = new int();
for(int i = 0;i<a.Lenth;i++)
{
int Num1 = (a[i]+ a[a.lenth - i]);
int Num2 = (a[i]- a[a.lenth - i]);
sum += Num1*Num1 - Num2*Num2;
}
return sum;
zero8500 2008-07-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 viena 的回复:]
=〉 非技术区
[/Quote]
Code従業員 2008-07-07
  • 打赏
  • 举报
回复
感觉回到了高中呵呵,类似的题目以前做了很多,这个好像的多形式简化,如果是要求An的通项公式的化,应该可以先考虑求2An,因为乘以2以后

2a2=2a1*a0+2a0*a1 = a1平方 + 2a1*a0 + a0平方 - a1平方+ 2a0*a1 - a0平方
= a1平方 + 2a1*a0 + a0平方 - (a1平方- 2a0*a1 + a0平方)
= (a1 + a0)平方 - (a1 - a0)平方

恩这样知道了么?对,吧首尾的数据对应,算出2an,再想办法减去an,应该可以又消去一大节(题目是人出的,所以这样的“巧合”简直是一定的)。
shoushii 2008-07-07
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 starts_2000 的回复:]
n=520 就是正无穷大了
[/Quote]
用字符串计算,写个算法,这位仁兄
shoushii 2008-07-07
  • 打赏
  • 举报
回复
已知:
a0=1
a1=1
a2=a1*a0+a0*a1
a3=a2*a0+a1*a1+a0*a2
a4=a3*a0+a2*a1+a1*a2+a0*a3
a5=a4*a0+a3*a1+a2*a2+a1*a3+a0*a4
…….
得出:
a3-a2=2a0(a2-a1)+a1(2a1-a0)
a4-a3=2a0(a3-a2)+a1(2a2-a1)
a5-a4=2a0(a4-a3)+a1(2a3-a2)
……
归纳不下去了,知识有限
starts_2000 2008-07-07
  • 打赏
  • 举报
回复
n=520 就是正无穷大了
starts_2000 2008-07-07
  • 打赏
  • 举报
回复
改进

double Fn(int n)
{
if (n == 0 || n == 1)
return 1;
if (n == 2)
return 2;
double[] arr = new double[n + 1];
arr[0] = arr[1] = 1;
arr[2] = 2;

for (int i = 3; i <= n; i++)
{
for (int j = 0; j < i; j++)
{
arr[i] += arr[i - j - 1] * arr[j];
}
}
return arr[n];
}
zlkingdom 2008-07-07
  • 打赏
  • 举报
回复
一般的方法肯定是用递归和循环,因为设计时是希望程序能够通用嘛
如果是很确定的多项式可以想办法自己将值全算出来,不过就是有取巧的嫌疑,而且这样的程序多是不能通用的
shoushii 2008-07-07
  • 打赏
  • 举报
回复
又例如:1+2+3+4+...+100=?
(1+100)*100/2=5050
至于全都加起来吗?
shoushii 2008-07-07
  • 打赏
  • 举报
回复

int Fn(int n)
{
if (n == 0 || n == 1)
return 1;
if (n == 2)
return 2;
int fn = 0;
for (int i = 0; i < n; i++)
{
fn += Fn(n - i - 1) * Fn(i);
}
return fn;
}



--------------------------------------------
代码实现固然可以,但不是最好。
例如:1 2 4 8 16 32 64 ....
显然是2的N次方,至于用递归吗?
starts_2000 2008-07-07
  • 打赏
  • 举报
回复

int Fn(int n)
{
if (n == 0 || n == 1)
return 1;
if (n == 2)
return 2;
int fn = 0;
for (int i = 0; i < n; i++)
{
fn += Fn(n - i - 1) * Fn(i);
}
return fn;
}
一品梅 2008-07-07
  • 打赏
  • 举报
回复
感谢楼主提供了那么好的一篇文章.
shoushii 2008-07-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 viena 的回复:]
=〉 非技术区
[/Quote]
VMM 这个来源于一个面试题呀,我只不过是抽象成公式了而已。
viena 2008-07-07
  • 打赏
  • 举报
回复
=〉 非技术区

shoushii 2008-07-07
  • 打赏
  • 举报
回复
还真晕,看来外部的链接不是很好用呀,只有我能看到。
shoushii 2008-07-07
  • 打赏
  • 举报
回复
amandag 2008-07-07
  • 打赏
  • 举报
回复
1.图片看不见
2.多项式也忘的差不多了
xlong224 2008-07-07
  • 打赏
  • 举报
回复
I can't see the pic.
MADfox1983 2008-07-07
  • 打赏
  • 举报
回复
图片最好放到csdn上```````
加载更多回复(1)

7,763

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧