现在我正在编写一个可以做基本线性代数的程序,我有两个常量:A和B,我可以简单地输入它们的系数,然后在上面加上其他值。
示例:
假设我想找出fibbonaci序列的项
A
B我想取A+B并将其附加到文件中。
A
B
A+B现在我想添加第二项和第三项
A
B
A + B
A + 2B诸若此类。
我有一个程序,可以对所有的数值都这样做,但是,我希望看到它以代数的方式上升,而不是使用binets公式。
我唯一的猜测是将A和B的系数存储到两个单独的文件中,以便计算它们,然后将它们打印出来,然而,如果线性代数在C语言中可用,就会容易得多。
编辑:不要紧,我忘了这是电脑书呆子的地方,不是数学书呆子的地方。
发布于 2015-03-16 19:03:24
作为一种传统的命令式语言,C没有对代数表达式的内置支持。要计算斐波那契数列的系数,可以编写如下程序:
#include <stdio.h>
int main() {
int i;
int coeff_a_1 = 1;
int coeff_b_1 = 0;
int coeff_a_0 = 0;
int coeff_b_0 = 1;
printf("A\n");
printf("B\n");
for (i = 0; i < 15; i++) {
int coeff_a = coeff_a_0 + coeff_a_1;
int coeff_b = coeff_b_0 + coeff_b_1;
printf("%dA + %dB\n", coeff_a, coeff_b);
coeff_a_1 = coeff_a_0;
coeff_b_1 = coeff_b_0;
coeff_a_0 = coeff_a;
coeff_b_0 = coeff_b;
}
return 0;
}这将打印以下内容:
A
B
1A + 1B
1A + 2B
2A + 3B
3A + 5B
5A + 8B
8A + 13B
13A + 21B
21A + 34B
34A + 55B
55A + 89B
89A + 144B
144A + 233B
233A + 377B
377A + 610B
610A + 987B对于更复杂的问题,我建议使用提供C绑定的computer algebra system。
https://stackoverflow.com/questions/29074021
复制相似问题