本文介绍了算法计算的组合的数量,以形成100的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我打一个棘手的情况下,我需要计算组合的数量根据不同的因素,形成100。
I am struck in a tricky situation where I need to calculate the number of combinations to form 100 based on different factors.
这些都是
- 的组合数
- 倍增因子
- 在距离
输入示例1:(20年2月10日)
这意味着
- 列出了有效的双向结合,形成100
- 的结合间的距离应小于或等于20。
- 和所有的最终组合必须能整除给定倍增系数10
输出为
[40,60]
[50,50]
[60,40]
在这里[30,70],[20,60]是无效的,因为距离大于20。
here [30,70],[20,60] are invalid because the distance is above 20.
采样输入2: [20年2月5日]
[40,60]
[45,55]
[50,50]
[55,45]
[60,40]
我真的AP preciate如果您指引我正确的方向。
I would really appreciate if you guided me to the right direction.
干杯。
推荐答案
我希望这不是一个家庭作业的问题!
I hope it's not a homework problem!
def combinations(n: Int, step: Int, distance: Int, sum: Int = 100): List[List[Int]] =
if (n == 1)
List(List(sum))
else
for {
first <- (step until sum by step).toList
rest <- combinations(n - 1, step, distance, sum - first)
if rest forall (x => (first - x).abs <= distance)
} yield first :: rest
这篇关于算法计算的组合的数量,以形成100的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!