我需要計算矩形區域的兩個整數邊。
換句話說,我需要找到兩個整數乘以數字X,從數字X.從區域計算矩形邊的最快方法?
這是我在GML中編寫的代碼(即使您不知道該語言,是很容易理解的):
px = rectangleArea;
height = sqrt(px);
fheight = floor(height);
n = 0;
while (floor(px/height) != px/height) {
height = fheight - n;
n += 1;
}
width = px/height;
它所做的是用「蠻力」,這由它劃分的區域給出了另一個整數,從該地區的截四角根開始,用數字下降至1,號碼的整數找到。 (我甚至不知道平方根的東西是否有意義)
這段代碼可能適用於小數字,但我需要使用數字> 10^6,並且它將花費該循環的時間完成。
我知道這將需要一段時間,但我能以更有效的方式實現嗎?
謝謝你的建議!
(GML,Java和C++應該罰款語言在回答使用,但我寧願像一個解釋:)
編輯:
好了,所以這裏的問題是,矩形的儘可能接近正方形。
1.找出數字的主要因素。 2.乘以素數因子,直到只剩下兩個數字。 –
你想要最矩形或矩形的矩形嗎? –
如果矩形是最像方形的那樣會更好 –