请问一下随机问题,谢谢
随机产生全排列中的某个排列,如0到16随机产生一个2 5 6 9 8 7 3 0 1 10 11 15 16 14 13 4 12
[解决办法]
洗牌算法。
代码如下:
#include <iostream>
#include <cstdlib>
#include <windows.h>
using namespace std;
int main( )
{
int list[17];
int i;
for( i=0; i <17; ++i )
list[i]=i;
srand(GetTickCount());
for( i=0; i <17; ++i )
{
int j=rand()%17, temp;
temp=list[j];
list[j]=list[i];
list[i]=temp;
}
cout < < "一个随机排列为: ";
for( i=0; i <17; ++i )
cout < <list[i] < < " ";
cout < <endl;
return 1;
}