我在一家混合工厂有 12 种产品(称它们为 a - l),需要生成不同百分比的产品,总和显然是 100%。
像下面的代码这样简单的东西可以工作,但是效率很低。有没有更高效的算法?
*编辑:如下所述,无论是否有效,计算的可能性都太多了。我会将其更改为最多只有 5 种或 12 种产品混合,然后根据可以从 12 种产品中选择 5 种产品的方式进行运行。
你们中的一些人指出了一些 Python 代码,它似乎可以从组合中找出可能性。然而,我的 Python 是最小的(即 0%),你们中的一个人能用 Java 术语解释这一点吗?我可以在 Java 中获得组合(http://www.cs.colostate.edu/~cs161/Fall12/lecture-codes/Subsets.java)
public class Main {
public static void main(String[] args) throws FileNotFoundException, UnsupportedEncodingException {
for(int a=0;a<=100;a++){
for(int b=0;b<=100;b++){
for(int c=0;c<=100;c++){
for(int d=0;d<=100;d++){
for(int e=0;e<=100;e++){
for(int f=0;f<=100;f++){
for(int g=0;g<=100;g++){
for(int h=0;h<=100;h++){
for(int i=0;i<=100;i++){
for(int j=0;j<=100;j++){
for(int k=0;k<=100;k++){
for(int l=0;l<=100;l++){
if(a+b+c+d+e+f+g+h+i+j+k+l==100)
{
System.out.println(a+" "+b+" "+c+" "+d+" "+e+" "+f+" "+g+" "+h+" "+i+" "+j+" "+k+" "+l);
}}}}}}}}}}}}}
}
}