首页 > 解决方案 > 获取应将 2 提高到哪个数字以获取 x 的函数

问题描述

在 2^x = n 中找到 x。这就是我想要做的。(它不是为了任何特定目的。它只是看起来不错。)这是我写的,但它不起作用。

       public double f(double x)
       {
            double result = 0;
            double increaser = 1;
            
            double subtract = result - increaser;
            double add = result + increaser;
            
            while(true)
            {
                if((Math.Pow(2,result) == x) || increaser == 0.0001) 
                {
                    break;
                }
                
                double sP = Math.Abs(Math.Pow(2,subtract) - x);
                double aP = Math.Abs(Math.Pow(2,add) - x);
                double nP = Math.Abs(Math.Pow(2,result) - x);
                
                if((sP < nP) && (sP < aP))
                {
                    result -= increaser;
                }
                else if((aP < nP) && (aP < sP))
                {
                    result += increaser;
                }
                else if((nP < sP) && (nP < aP))
                {
                    increaser = increaser / 10;
                }
            }
            
            return result;
        } 

标签: c#math

解决方案


这个函数称为对数:

return Math.Log2(n);

推荐阅读