LiXiang98

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
统计
 
复制代码
Console.WriteLine("Hello, World!");
var list = new double[100000000];
for(int i = 0; i < 100000000; i++)
{
    list[i] = i;
}
Console.WriteLine("Func1结果:"+ Func1(100000000, 1, list));
Console.WriteLine("Func2结果:" + Func2(100000000, 1, list));


//a1*x^1 + a2*x2+a3*x^3+....+an*x^n
static double Func1(int n,double x, double[] aList)
{
    Stopwatch sw = new Stopwatch();
    sw.Start();
    double p = aList[0];

    for (int i = 1; i <= n-1 ; i++)
    {
        p += (aList[i] * Math.Pow(x,i));
    }
    sw.Stop();
    Console.WriteLine("func1 耗时" + sw.Elapsed.TotalSeconds);
    return p;
}





//等价于a0 + x(a1 + x(a2 + x(a3 + x(...+x(an - 1 + x(an)))))
static double Func2(int n, double x, double[] aList)
{
    Stopwatch sw =new Stopwatch();
    sw.Start();
    double p = aList[n-1];

    for (int i = n - 1; i>0; i--)
    {
        p = (p*x + aList[i-1]);
    }
    sw.Stop();
    Console.WriteLine("func2 耗时"+ sw.Elapsed.TotalSeconds); 
    return p;
}
复制代码

如上代码,采用两种不同的算法计算多项式的值,差异如下:第一种方法耗时是第二种方法耗时的五倍左右,并且会随着数据量增大而增大

 

posted on   LiXiang98  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
 
点击右上角即可分享
微信分享提示