【问题标题】:Cube Root using iterations and bisectionCube Root 使用迭代和二分法
【发布时间】:2019-03-01 07:47:02
【问题描述】:

我试图通过二等分然后缩小它来找到一个数字的立方根。我以这种方式有平方根的程序,但是立方根方法只是继续循环并且永远不会给出答案。我不确定我哪里出错了,需要一些建议。

public class myFunc
{
    public static double squareRoot(double value, double precision)
    {
        double low, high, middle;
        high = 1;
        low = value;
        middle = (high + low) / 2;
        Console.WriteLine("{0,20:n12}{1,20:n12}{2,20:n12}", low, middle, high);
        while ((high-low)>precision)
        {
            if ((middle * middle) <value)
            {
                low = middle;
            }
            else
            {
                high = middle;
            }
            middle = (high + low) / 2;
            Console.WriteLine("{0,20:n12}{1,20:n12}{2,20:n12}", low, middle, high);
        }
        return (middle);
    }

    public static double cubeRoot(double value, double precision)
    {
        double low, high, middle;

        high = value;
        low = 1;
        middle = (high + low) / 3;
        Console.WriteLine("{0,20:n12} {1,20:n12} {2,20:n12}", low, middle, high);
        while ((high - low) > precision)
        {
            if ((middle * middle*middle)>value)
            {

                high = middle;
            }

            else
            {
                low = middle;
            }
            middle = (high + low) / 3;
            Console.WriteLine("{0,20:n12} {1,20:n12} {2,20:n12}", low, middle, high);
        }
        return (middle);
    }

【问题讨论】:

标签: java root cube bisection


【解决方案1】:

middle = (high + low) / 3; 假设高是 10,低是 8,中间是...... 6?这不是超出你想要的范围吗?

中间应该仍然是(high + low) / 2,这个搜索第三根的只是(middle * middle*middle)&gt;value 测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-26
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多