如何使这种绘图算法更有效?

时间:2019-09-27 06:57:04

标签: c# algorithm data-structures

我已经用C#编写了一些代码来绘制由大型多项式方程ex生成的数据点的图形:

\input{}

其中y = (a*b*c*… + e*d*f*g *…*x + h*…*x*x +...)/(A*B*C*… + E*D*F*G*…*x +...) 是已知的浮点系数,a, b, c,... F, G是变量

我存储等式的方法是通过分子列表的分子Arraylist和分子列表的分母Arraylist(乘积之和,其中分子和分母内部的每个arraylist都是浮点系数或正被乘以的“ x”字符串的集合在一起,并且每个结果都被加在一起)

然后,我遍历分子中的所有Arraylist,并遍历每个变量中的每个系数或变量字符串,并将每个变量或变量字符串相乘(将当前数据点替换为字符串“ x”),并将每个结果添加到最终分子结果。我对分母重复相同的内容。然后,我将每个数据点都分为两个。

是否有一种更有效的算法来计算这些数据点?我的目标是让用户可以滑动一个滑块,并实时查看更改任何系数将如何更改多项式的图。

编辑,我认为加快速度的一些方法是移动此行

x

插入else括号中,这样当用户不需要对数图时就不会进行额外的计算。我也在考虑也许可以在循环的第一次迭代中预先计算已知系数的乘积的总和,以便不作任何改动,从而节省一些乘法运算。我还要提到的是,我只关心最终结果的绝对值

编辑一些代码,即使有些混乱(希望我得到了所有相关的信息):

float temp_y = helper_get_num_denom_total(start_x + del_x * i,  numer)/helper_get_num_denom_total(start_x + del_x*i, denom);

0 个答案:

没有答案
相关问题