繁体   English   中英

在给定一些最大和最小标准的情况下返回所有排列的方法

[英]Method that returns all permutation given some maximum and minimum criteria

需要构建这个方法,这可能会使用一些递归,但没有成功,一旦给定每个元素的总和最大值和最小值,就会返回所有可能的列表,其元素的总和是总值。

Ex

Input:
Total: 25
Maximum value per element in array:5
Minimum value per element in array:3

Output: 

[5,5,5,5,5] [5,4,5,5,5] [5,4,4,5,5] [5,4,4,4,5,3] [5,4,4,4,4,4] [4,4,4,4,4,5] [4,4,4,4,4,4,1]
[3,4,4,4,4,4,2] [3,3,4,4,4,4,3] [3,3,4,4,4,4,3] [3,3,3,4,4,4,4] [3,3,3,3,4,4,5]
....

伪代码:

void makesum(lst, int asum, int amin, int amax):
    if (asum == 0) {
        print(lst.ToString());
    } 
    else {
        for (int i=amin; i <= min(asum, amax); i++) {
            makesum(lst.add(i), asum - i, amin, amax);
        }
   }

makesum(empty_array, 15, 3, 5)

工作 Python 版本供参考

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM