小编Ken*_*ral的帖子

C#:没有重复的骰子排列

如何更改下面的C#代码以列出所有可能的排列而不重复?例如:2个骰子卷的结果将产生1,1,2,因此不应出现2,1,1.

以下是我的代码:

string[] Permutate(int input)
{
        string[] dice;
        int numberOfDice = input;
        const int diceFace = 6;
        dice = new string[(int)Math.Pow(diceFace, numberOfDice)];
        int indexNumber = (int)Math.Pow(diceFace, numberOfDice);
        int range = (int)Math.Pow(diceFace, numberOfDice) / 6;

        int diceNumber = 1;
        int counter = 0;

        for (int i = 1; i <= indexNumber; i++)
        {
            if (range != 0)
            {
                dice[i - 1] += diceNumber + " ";
                counter++;
                if (counter == range)
                {
                    counter = 0;
                    diceNumber++;
                }
                if (i == indexNumber) …
Run Code Online (Sandbox Code Playgroud)

c# math permutation combinatorics

6
推荐指数
2
解决办法
2237
查看次数

标签 统计

c# ×1

combinatorics ×1

math ×1

permutation ×1