पुनरावृत्ति के बिना सभी संभावित क्रमपरिवर्तनों को सूचीबद्ध करने के लिए मैं नीचे अपना सी # कोड कैसे बदल सकता हूं? उदाहरण के लिए: 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)
{
range /= 6;
i = 0;
}
if (diceNumber == 7)
{
diceNumber = 1;
}
}
Thread.Sleep(1);
}
return dice;
}