Java - 掷骰子组合,达到相同的目标值



我遇到的问题是从设定数量的骰子和设定的目标值进行计算,骰子的最佳组合是什么,以便可以尽可能多次地达到最多的目标值,而无需重复使用单个骰子。

为了澄清,这里有一个例子:使用 6 个骰子,保存值:1、1、1、2、4、4,我想达到的目标是 5。

为了得到 5,我可以用不同的方式组合骰子,例如 1+1+1+2 是 5,以及 4+1。但我想要的是能够独特地组合尽可能多的骰子,以尽可能多地达到我的目标值。在这种情况下,我必须选择的组合是:4+1 和另一个 4+1,达到我的目标值两次。

以编程方式执行此操作被证明是困难的,但非常感谢任何建议。

基本算法是考虑任何骰子存在或不存在。如果总和小于目标,请继续。其他明智的返回没有结果。如果您命中目标,则返回 seq。 您可以递归地执行此操作,对于每个组合切换骰子的考虑因素并继续,直到达到/传递目标值。顺序将是 2^n。

最新更新