如何找到最接近值列表的值?

蓝天

我正在尝试编写一种返回值列表中最接近的值的算法。因此,在List(4.0,6.0,2.0)中,最接近7.0的值是6.0

以下是我正在使用的代码,但由于返回的最接近值为4,因此它是不正确的:

如何解决下面的代码,或者有一种我可以用来解决此问题的Scala实用工具方法?

    val num = 7.0                             //> num  : Double = 7.0
    val listNums = List[Double](4,6,2)        //> listNums  : List[Double] = List(4.0, 6.0, 2.0)


    def getClosest(num : Double , listNums : List[Double]) = {

      var min = java.lang.Double.MAX_VALUE
    var closest = num

    for(x <- listNums ){

    val diff = x - num
   if(num < min){
    min = diff
    closest = x
    }
   }

   closest

    }                                         //> getClosest: (num: Double, listNums: List[Double])Double

val closest = getClosest(num , listNums)  //> closest  : Double = 4.0
特拉维斯·布朗

这几乎与minBy以下情况一模一样

def getClosest(num: Double, listNums: List[Double]) =
  listNums.minBy(v => math.abs(v - num))

minBy不幸的是,它是一个部分函数-在空列表上调用时,它将崩溃并发生异常。为了匹配实现的行为,可以编写以下代码:

def getClosest(num: Double, listNums: List[Double]) = listNums match {
  case Nil => Double.MaxValue
  case list => list.minBy(v => math.abs(v - num))
}

代码的问题在于,您没有采用绝对值,因为另一个答案是隐式指出的。不过请不要使用Math.abs-这是的简写java.lang.Math.absmath.abs更习惯。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在排序列表中找到最接近/最接近的值

来自分类Dev

在python列表中找到最接近的值对

来自分类Dev

python在列表中找到最接近的值

来自分类Dev

如何在左侧找到最接近的值

来自分类Dev

如何获得列表中最接近的值?

来自分类Dev

如何找到最接近2 ** n值的值?

来自分类Dev

如何使用numpy在3D数组列表中找到最接近的值?

来自分类Dev

如何使用内置函数在列表中找到最接近目标的值?

来自分类Dev

如何从谁的值最接近零的列表中找到两个索引

来自分类Dev

如何从POJO属性中找到Java中最接近的值?

来自分类Dev

mongodb-如何更快地找到最接近的值

来自分类Dev

如何找到最接近的 N 值?进入序列?

来自分类Dev

如何在 Python 中找到最接近数字的值?

来自分类Dev

在矩阵Matlab中找到最接近的值

来自分类Dev

在Matlab中找到最接近的较小值

来自分类Dev

数学上找到最接近0的值

来自分类Dev

在列pandas中找到最接近的值

来自分类Dev

找到最接近的值及其与测定的差异

来自分类Dev

如何获取最接近x的列表中的值的索引?

来自分类Dev

使用最接近的值从列表构建表?

来自分类Dev

如何在Matlab中找到最接近给定时间值的时间值

来自分类Dev

如何找到最接近的值并返回另一列的值?

来自分类Dev

从文件bash中找到与给定值最接近的值

来自分类Dev

在列表中找到与给定数字最接近的较小和较大值的最佳方法是什么

来自分类Dev

从列中找到最接近的值,并从相邻列中返回数字(在列表内)

来自分类Dev

如何识别X的最接近值的倍数?

来自分类Dev

如何从mysql返回最接近的值

来自分类Dev

如何返回最接近零的值

来自分类Dev

找出最接近的值

Related 相关文章

热门标签

归档