当a*b=10,求a^b的最大值?此时a,b各为多少?

a*b=10时,a,b都为实数,求MAX(a^b)

其实能轻易化简得到求MAX(a^(10/a));

在推算过程中a的值,我以0.00001为初始数,1000为终点数,逐个排除算出最大值

c#代码如下:

    class Program
    {
        static void Main(string[] args)
        {
            double max = 0;
            double a = 0;
            double tempA = 0;
            double k = 0.00001;
            Int64 count = 10000000;
            while (count > 0)
            {
                count--;
                tempA = tempA + k;
                double temp = Math.Pow(tempA, 10 / tempA);
                if (temp > max)
                {
                    max = temp;
                    a = tempA;
                   
                }
            }
            Console.WriteLine("最大值为:" + max.ToString());
            Console.WriteLine("A取:" + a.ToString());
            Console.WriteLine("B取:" + (10 / a).ToString());
            Console.ReadKey();
        }

    }

最后得出估算结论最大值近似值在39.59左右,其a值近似为自然常数e,e=2.71828182846,代入a,最后e^(10/e)=39.5986256446276, 微大于估算结果。

如果计算机采用e进制效率会更高,3进制会比2进制高,但是制作工艺成本可能就高了。

 

posted @ 2013-04-23 22:52  技术笔记2012  阅读(970)  评论(0编辑  收藏  举报