用c中的2个未知参数求解方程的最快算法?

彼得·科内尼

我正在计算 x 和 y 的可能组合的值。它有效,但是当我输入大数字时,它花费的时间太长了。你对更好的算法有什么想法吗?

ax + by = c

程序的输入是a、b、c,应该是非负数。我的代码如下所示:

int combs=0;
for(int x=0; x < c; x++) {
    for(int y=0; y < c; y++) {
        if( (a*x) + (b*y) == c) {
            combs++;
        }
    }
}

一个更快的方法是先做一些数学运算。ax+by=c=>y=(c-ax)/b

int combs=0;
for(int x=0; x < c; x++) {
    int y = (c-a*x)/b;
    if( (a*x) + (b*y) == c)
        combs++;
}

摆脱嵌套循环是提高性能的最重要的细节。您可以做的另一件事是按照 Antti Haapala 在下面的评论中建议的那样做,并使用 ax 而不是 x。

int combs=0;
for(int ax=0; ax < c; ax+=a) {
    int y = (c-ax)/b;
    if( (ax) + (b*y) == c)
        combs++;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

求解方程的算法

来自分类Dev

用未知常数求解方程 wolfram mathematica

来自分类Dev

Matlab:用两个未知参数求解指数方程

来自分类Dev

在Gekko中求解方程

来自分类Dev

在SAS中求解方程

来自分类Dev

在matlab中求解方程组:2个微分,1个二次

来自分类Dev

用 sympy 中的分数指数求解方程

来自分类Dev

SciPy,用“根”法求解方程

来自分类Dev

在 Octave 中,有没有办法在 2 个变量中为 1 个变量求解方程

来自分类Dev

与Excel求解器参数函数相似的R中的求解方程式

来自分类Dev

与Excel求解器参数函数相似的R中的求解方程式

来自分类Dev

在MATLAB中求解方程组

来自分类Dev

在Matlab中求解方程组

来自分类Dev

使用成员函数求解方程C ++

来自分类Dev

求解方程缓慢

来自分类Dev

用关联和交换算子求解方程

来自分类Dev

如何在iOS中求解方程式

来自分类Dev

如何在Mathematica 9中求解方程组

来自分类Dev

在Python 3.3中求解方程式

来自分类Dev

在R中求解方程式解

来自分类Dev

在C中使用#define求解方程式

来自分类Dev

用Thomas算法求解热方程

来自分类Dev

寻求使用python中两个列表的值的所有可能组合来求解方程的通用方法

来自分类Dev

未知数不能单独放置时如何求解方程

来自分类Dev

使用倍频程求解方程

来自分类Dev

使用倍频程求解方程

来自分类Dev

极大值求解方程

来自分类Dev

Sympy,如何求解给定范围内的2个未知数的方程

来自分类Dev

在 C 中求解 ax^2+bx+c=0 方程