Java-达到相同目标值的骰子滚动组合

Java-达到相同目标值的骰子滚动组合,java,dice,Java,Dice,我遇到的问题是,根据一组骰子数和一组目标值来计算,骰子的最佳组合是什么,以便在不重复使用单个骰子的情况下,尽可能多次达到最大目标值 为了澄清,这里有一个例子: 使用6个骰子,保存值:1,1,1,2,4,4,我想要达到的目标是5 为了得到5,我可以用不同的方式组合骰子,例如1+1+1+2等于5,以及4+1。但我想要的是能够唯一地组合尽可能多的骰子,以达到我的目标值,我可以多次。在这种情况下,我必须选择的组合是:4+1和另一个4+1,两次达到我的目标值 这样编程证明是困难的,但是任何建议都是非常值得

我遇到的问题是,根据一组骰子数和一组目标值来计算,骰子的最佳组合是什么,以便在不重复使用单个骰子的情况下,尽可能多次达到最大目标值

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

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


这样编程证明是困难的,但是任何建议都是非常值得赞赏的。

< P>基本算法是考虑存在或不存在的任何骰子。如果总和小于目标值,则继续。其他明智的做法没有结果。如果你击中目标,返回序列号。 您可以递归地为每个组合切换一个骰子的考虑因素,并继续执行此操作,直到达到/通过目标值。顺序为2^n