Tag: 语言不可知

是否有一个函数式编程习惯用于“从列表开始选择并减少到结果满足谓词”?

假设我有一个数字列表,我需要知道有多少元素,我将不得不从它的开始选择至少得到所需的总和。 该算法是微不足道的:我从列表的开头挑选数字,直到所有选取的数字之和超过一定数量。 我可以这样写: fun pickEnough(list: List<Double>, enough: Double): List<Double>? { var soFar = 0.0 var index = 0 for (index in 0..list.size) { soFar += list[index] if (soFar > enough) { return list.subList(0, index) } } return null } 一个低效的,但更一般的解决方案是产生所有可能的子列表,并选择第一个减少结果是足够好的: fun <T> pickEnough(list: List<T>, reducer: (T, T) -> T, enough: (T) -> Boolean): List<T>? = […]

根据背景颜色确定字体颜色

给定一个系统(例如一个网站),让用户自定义一些部分的背景颜色,但不是字体颜色(保持选项的数量最少),有没有一种方法来编程确定是否“光”或“黑暗“的字体颜色是必要的? 我确定有一些算法,但是我对颜色,光度等知之甚少,无法自行解决。