对于一个学校项目,我有一个简单的程序,可以比较20x20的照片。我放了20张照片,然后放了21张照片,将其与现有的20张照片进行比较,然后弹出答案,我确实插入了哪张照片(或哪张照片最相似)。问题是,我的老师要我使用最近邻居算法,因此我要计算每张照片的距离。我让所有工作正常进行,但问题是,如果照片太相似,我会说哪个更接近我的问题。例如,我用两张不同的照片得到了这些距离(嗯,它们几乎是相同的):

0 distance: 1353.07982026191
1 distance: 1353.07982026191

它已经是15位数字,我正在使用double类型。我在读long double是一样的。有什么“简便”的方法可以存储15位以上的数字并对其进行数学运算?

我用欧几里得距离计算距离

我只需要更精确一些,否则我可能不会在这里超过这个限制,我应该和我的老师谈谈我无法比较类似的照片吗?

最佳答案

我认为您需要这个:gmplib.org

这里也有一个如何安装此库的指南。

这是关于浮点数的文章:http://gmplib.org/manual/C_002b_002b-Interface-Floats.html#C_002b_002b-Interface-Floats

07-24 09:43