gpt4 book ai didi

c++ - 找到两个整数,使得它们的乘积接近给定的实数

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:16:13 25 4
gpt4 key购买 nike

我正在寻找一种算法来找到两个整数值 x,y 使得它们的乘积尽可能接近给定的 double 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 的乘积差异也最小?

最佳答案

您必须查看相关数字的平方根。对于 21.5 sqrt(21.5) = 4.6368,您找到的数字实际上就在这个值附近。

关于c++ - 找到两个整数,使得它们的乘积接近给定的实数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13231940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com