重复排列
当你有n个东西可供选择时...你每次都有n个选择!
选择其中的r时,排列为:
n×n×...(r次)= n ^ r
我提出2个案例。第一种情况是我们已经知道n和r的大小,而且很容易。 n和r是动态的第二个。
//when n and r are known statically
class Permutation
{
public static void main(String[] args)
{
char[] values = {'a', 'b', 'c', 'd'};
int n = values.length;
int r = 2;
int i = 0, j = 0;
for(i=0; i
{
for(j=0; j
{
System.out.println(values[j] + " " + values[i]);
}
}
}
}
//when n and r are known only dynamically
class Permutation
{
public static void main(String[] args)
{
char[] values = {'a', 'b', 'c', 'd'};
int n = values.length;
int r = 2;
int i[] = new int[r];
int rc = 0;
for(int j=0; j
{
rc=0;
while(rc
{
System.out.print(values[i[rc]] + " ");
rc++;
}
System.out.println();
rc = 0;
while(rc
{
if(i[rc]
{
i[rc]++;
break;
}
else
{
i[rc]=0;
}
rc++;
}
}
}
}