首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C语言中的代数操作

问C语言中的代数操作
EN

Stack Overflow用户
提问于 2015-03-16 18:02:13
回答 1查看 111关注 0票数 0

现在我正在编写一个可以做基本线性代数的程序,我有两个常量:A和B,我可以简单地输入它们的系数,然后在上面加上其他值。

示例:

假设我想找出fibbonaci序列的项

代码语言:javascript
复制
A
B

我想取A+B并将其附加到文件中。

代码语言:javascript
复制
A
B
A+B

现在我想添加第二项和第三项

代码语言:javascript
复制
A
B
A + B
A + 2B

诸若此类。

我有一个程序,可以对所有的数值都这样做,但是,我希望看到它以代数的方式上升,而不是使用binets公式。

我唯一的猜测是将A和B的系数存储到两个单独的文件中,以便计算它们,然后将它们打印出来,然而,如果线性代数在C语言中可用,就会容易得多。

编辑:不要紧,我忘了这是电脑书呆子的地方,不是数学书呆子的地方。

EN

回答 1

Stack Overflow用户

发布于 2015-03-16 19:03:24

作为一种传统的命令式语言,C没有对代数表达式的内置支持。要计算斐波那契数列的系数,可以编写如下程序:

代码语言:javascript
复制
#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;
}

这将打印以下内容:

代码语言:javascript
复制
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。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29074021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档