首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请教一下随机有关问题,多谢

2012-02-19 
请问一下随机问题,谢谢随机产生全排列中的某个排列,如0到16随机产生一个2 5 6 9 8 7 3 0 1 10 11 15 16 14

请问一下随机问题,谢谢
随机产生全排列中的某个排列,如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;
}

热点排行