gpt4 book ai didi

c - 乘以任意长度多项式的算法?

转载 作者:太空宇宙 更新时间:2023-11-04 06:26:46 24 4
gpt4 key购买 nike

假设我们将多项式表示为 float 组,其中多项式中每一项的次数对应于数组中的索引(例如。4.2x^5+x^2-1.4将表示为 {-1.4, 0, 1, 0, 0, 4.2}

我的作业问题是用 C 编写一个方法,将两个任意长度的多项式相乘并打印出结果(而不是返回结果)。

通常,当我问关于 SO 的问题时,我会包括到目前为止我尝试过的内容,但我真的对这个一无所知。这就是我的全部:

void multpoly(float *a, int len_a, float *b, int len_b)
{
for(i = 0; i < len_result; i++)
{
printf(" %.5f, ", product[i]);
}
}

如有任何帮助,我们将不胜感激!

最佳答案

我相信这可以满足您的需求:

// constraints: 'result' must have space for at least len1 + len2 - 1 elements.
void multpoly(const float *poly1, int len1, const float *poly2, int len2, float *result)
{
int i, p1i, p2i;
int len_result = len1 + len2 - 1;

for (i = 0; i < len_result; i++) result[i] = 0.0;

for (p1i = 0; p1i < len1; ++p1i)
for (p2i = 0; p2i < len2; ++p2i)
result[p1i + p2i] += poly1[p1i] * poly2[p2i];
}

Ideone example of this function

关于c - 乘以任意长度多项式的算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25944168/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com