Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 构造矩形算法是如何工作的?_Algorithm_Geometry - Fatal编程技术网

Algorithm 构造矩形算法是如何工作的?

Algorithm 构造矩形算法是如何工作的?,algorithm,geometry,Algorithm,Geometry,我正在研究一个脑筋急转弯的问题,我有正确的解决方案,但想澄清它是如何工作的。更具体地说,为什么这里需要面积的平方根,在面积模w==0之前,解每次递减的值是多少?是否有使用面积平方根的几何原理 解决方案: public int[] constructRectangle(int area) { int w = (int)Math.sqrt(area); while (area%w!=0) w--; return new int[]{area/w, w}; } 问题: 构造矩

我正在研究一个脑筋急转弯的问题,我有正确的解决方案,但想澄清它是如何工作的。更具体地说,为什么这里需要面积的平方根,在面积模w==0之前,解每次递减的值是多少?是否有使用面积平方根的几何原理

解决方案:

public int[] constructRectangle(int area) {
    int w = (int)Math.sqrt(area);
    while (area%w!=0) w--;
    return new int[]{area/w, w};
}
问题:

构造矩形添加到列表

对于web开发人员来说,了解如何设计网页大小非常重要。因此,给定一个特定矩形网页的面积,您现在的工作是设计一个矩形网页,其长度L和宽度W满足以下要求:

  • 您设计的矩形网页的面积必须等于给定的目标面积

  • 宽度W不应大于长度L,即L>=W

  • 长度L和宽度W之间的差异应尽可能小

  • 您需要依次输出所设计网页的长度L和宽度W

    例如:

    投入:4

    输出:[2,2]

    说明:目标区域为4,所有可能的构造方法为[1,4]、[2,2]、[4,1]。 但根据要求2,[1,4]是非法的;根据要求3,[4,1]与[2,2]相比不是最优的。所以长度L是2,宽度W是2

    int w = (int)Math.sqrt(area);
    
    查找距离
    区域的sqrt最近的整数
    w

    while (area%w!=0) w--;
    
    递减
    w
    ,直到它分成
    区域
    ,没有余数

    return new int[]{area/w, w};
    
    如果
    w
    划分为
    区域
    且没有余数,则高度必须为
    area/w

    面积的平方根开始
    表示矩形的高度和宽度将尽可能接近

    当然,如果你的面积是一个素数,那么你将得到
    w=1h=area

    查找距离
    区域的sqrt最近的整数
    w

    while (area%w!=0) w--;
    
    递减
    w
    ,直到它分成
    区域
    ,没有余数

    return new int[]{area/w, w};
    
    如果
    w
    划分为
    区域
    且没有余数,则高度必须为
    area/w

    面积的平方根开始
    表示矩形的高度和宽度将尽可能接近


    当然,如果你的面积是一个素数,那么你将得到
    w=1h=area

    矩形的面积可能并不总是一个完美的正方形。矩形的面积可能并不总是一个完美的正方形。