问题如下y = sin(x)其中x取0-2PI中某2个点之间的范围,
求y的最大值由于时间太长,我都还给老师了,烦劳各位赐教,另外,请给出尽量快的算法。谢谢

解决方案 »

  1.   

    其中x取0-2PI中某2个点之间的范围???
      

  2.   


    嗯,可能我说的不太清楚是从 0 - 2PI 中随机取2个值a,b ( a < b )求 在 x >= a && x <= b时,y的最大值。
      

  3.   

    对a,b的位置讨论可能结果 sin(a),sin(b), 1,
      

  4.   


    我现在就是要找出,到底是sin(a)还是sin(b)还是1
      

  5.   

    a,b是随机的?可以写个方法,输入为a,b,输出为最大值么?
      

  6.   


            public static Double GetMaxSin(Double a, Double b)  //a < b,0 - 2PI 
            {
                if(b < Math.PI / 2)
                {
                    return Math.Sign(b);
                }
                else if( b > Math.PI / 2 && b < Math.PI)
                {
                    return 1;
                }
                else if(b > Math.PI && b < Math.PI * 1.5)
                {
                    if(a < Math.PI /2)
                        return 1;
                    else
                        return Math.Sign(a);
                }
                else
                {
                    if(a < Math.PI / 2)
                        return 1;
                    else if(a > Math.PI / 2 && a < Math.PI)
                        return Math.Sign(a);
                    else
                    {
                        return Math.Sign(a) > Math.Sign(b)? Math.Sign(a):Math.Sign(b);
                    }
                }
            }
      

  7.   

    慢了点 :)
    参考:http://blog.csdn.net/luols/archive/2010/08/03/5786736.aspx