我正在寻找一种算法来找到两个整数值x,y,以使它们的乘积尽可能接近给定的双精度值,k而它们的差异很小。
示例:矩形的面积是k=21.5,我想找到该矩形的边长度,约束条件是它们必须是整数,在这种情况下,一些可能的解决方案是(不包括排列)(x=4,y=5),(x=3,y=7)以及愚蠢的解决方案(x=21,y=1)
事实上,对于这对夫妇,我们和这对夫妇(3,7)有同样的区别(21,1)
21.5-3*7=0.5 = 21.5-21*1
而对于(4,5)这对夫妇
21.5-4*5=1.5
但是这对夫妇(4,5)更可取,因为他们的区别是1,所以矩形“更平方”。
有没有一种方法可以提取那些x,y差异最小并且它们的乘积与 k 的差异也最小的值?