如何计算3基组合中的排列数?

Mic*_*ael 1 math permutation

我从来没有太多的数学,我希望有人可以帮我解决以下问题.

我有5盒:

 1   2   3   4   5
[ ] [ ] [ ] [ ] [ ]
Run Code Online (Sandbox Code Playgroud)

盒子可以是白色,灰色或黑色(或者把它想象为0,1,2)

盒子可以装入多少种可能状态?

什么是伪代码(或任何语言)来产生所有可能的结果?

即...

00000
00001
00011
00111
Run Code Online (Sandbox Code Playgroud)

等等......

我非常感谢任何人都可以帮助我.

z *_* - 7

组合数量的答案是:3x3x3x3x3(3 ^ 5),因为每个盒子可以有3种可能的颜色.

至于生成结果,看看是否可以使用此矩阵用0,1或2来表示结果,以表示框的颜色.在较小的范围内(假设3盒),它看起来像这样:

0 0 0
0 0 1
0 0 2
0 1 0
0 1 1
0 1 2
0 2 0
0 2 1
0 2 2
1 0 0
1 0 1
1 0 2
1 1 0
1 1 1
1 1 2
1 2 0
1 2 1
1 2 2
2 0 0
2 0 1
2 0 2
2 1 0
2 1 1
2 1 2
2 2 0
2 2 1
2 2 2
Run Code Online (Sandbox Code Playgroud)


Dav*_*idN 6

这是一个经典的排列生成问题.每个职位有3种可能性,5个职位.生成的字符串总数为3 ^ 5 = 243.如果需要通用解决方案,则需要递归(简单的迭代循环仅适用于单个问题实例).

这是一个简单的例子:

public static void Main(string[] args){

    Generate("", 5);
}

private void Generate(string s, int limit)
{
    if (s.Length == limit)
        Console.WriteLine(s);
    else
    {
        Generate(s+"0", limit);
        Generate(s+"1", limit);
        Generate(s+"2", limit);
    }
}
Run Code Online (Sandbox Code Playgroud)


Chr*_*isW 5

要回答你的第一个问题,如果方框只能包含两个值中的一个,答案是什么?那么,如果框中包含三个值中的一个,那么答案是什么?

为了回答你的第二个问题,什么伪代码会产生一个盒子的所有可能结果?现在,伪代码会产生两个盒子的所有可能结果吗?