代码
#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
using namespace std;
#define RAND_MAX 2147483647
const int N = 50;
int Random(int min, int max){
int d = max - min + 1;
return int(((double)rand()/((double)RAND_MAX + 1.0)) * d) + min;
}
int main()
{
vector<size_t> vAllIndices;
vAllIndices.reserve(N);
vector<size_t> vAvailableIndices;
for(int i=0; i<N; i++)
{
vAllIndices.push_back(i);
}
vector<vector<size_t>> mvSets;
mvSets = vector< vector<size_t> >(100,vector<size_t>(8,0));
int m;
srand((unsigned)time(NULL));
for(int it=0; it<100; it++)
{
vAvailableIndices = vAllIndices;
for(size_t j=0; j<8; j++)
{
int randi = Random(0,vAvailableIndices.size()-1);
int idx = vAvailableIndices[randi];
mvSets[it][j] = idx;
cout<<"值:"<<mvSets[it][j]<<endl;
cout<<"大小:"<<vAvailableIndices.size()<<endl;
vAvailableIndices[randi] = vAvailableIndices.back();
vAvailableIndices.pop_back();
}
}
}
运行结果
值:0
大小:50
值:27
大小:49
值:46
大小:48
值:6
大小:47
值:5
大小:46
值:13
大小:45
值:36
大小:44
值:41
大小:43
值:39
大小:50
值:36
大小:49
值:28
大小:48
值:10
大小:47
值:33
大小:46
值:1
大小:45
值:44
大小:44
值:6
大小:43
值:25
大小:50
值:45
大小:49
值:14
大小:48
值:18
大小:47
值:11
大小:46
值:20
大小:45
值:37
大小:44
值:5
大小:43
值:41
大小:50
值:19
大小:49
值:31
大小:48
值:17
大小:47
值:44
大小:46
值:8
大小:45
值:3
大小:44
值:42
大小:43
值:38
大小:50
值:1
大小:49
值:5
大小:48
值:41
大小:47
值:15
大小:46
值:42
大小:45
值:37
大小:44
值:47
大小:43
值:33
大小:50
值:21
大小:49
值:16
大小:48
值:19
大小:47
值:48
大小:46
值:17
大小:45
值:24
大小:44
值:42
大小:43
值:15
大小:50
值:42
大小:49
值:18
大小:48
值:25
大小:47
值:14
大小:46
值:11
大小:45
值:29
大小:44
值:6
大小:43
值:32
大小:50
值:16
大小:49
值:25
大小:48
值:28
大小:47
值:24
大小:46
值:26
大小:45
值:44
大小:44
值:12
大小:43
值:31
大小:50
值:35
大小:49
值:8
大小:48
值:45
大小:47
值:30
大小:46
值:1
大小:45
值:4
大小:44
值:14
大小:43
值:23
大小:50
值:22
大小:49
值:35
大小:48
值:44
大小:47
值:38
大小:46
值:13
大小:45
值:41
大小:44
值:6
大小:43
值:8
大小:50
值:16
大小:49
值:33
大小:48
值:22
大小:47
值:26
大小:46
值:48
大小:45
值:28
大小:44
值:9
大小:43
值:35
大小:50
值:7
大小:49
值:40
大小:48
值:11
大小:47
值:34
大小:46
值:20
大小:45
值:23
大小:44
值:16
大小:43
值:8
大小:50
值:34
大小:49
值:17
大小:48
值:38
大小:47
值:48
大小:46
值:20
大小:45
值:7
大小:44
值:9
大小:43
值:45
大小:50
值:44
大小:49
值:8
大小:48
值:35
大小:47
值:10
大小:46
值:5
大小:45
值:39
大小:44
值:16
大小:43
值:22
大小:50
值:29
大小:49
值:42
大小:48
值:1
大小:47
值:44
大小:46
值:23
大小:45
值:12
大小:44
值:48
大小:43
值:33
大小:50
值:5
大小:49
值:44
大小:48
值:20
大小:47
值:26
大小:46
值:46
大小:45
值:35
大小:44
值:31
大小:43
值:8
大小:50
值:49
大小:49
值:27
大小:48
值:42
大小:47
值:29
大小:46
值:32
大小:45
值:5
大小:44
值:23
大小:43
值:32
大小:50
值:14
大小:49
值:48
大小:48
值:40
大小:47
值:19
大小:46
值:9
大小:45
值:11
大小:44
值:37
大小:43
值:40
大小:50
值:6
大小:49
值:44
大小:48
值:37
大小:47
值:29
大小:46
值:8
大小:45
值:20
大小:44
值:13
大小:43
值:15
大小:50
值:19
大小:49
值:35
大小:48
值:41
大小:47
值:38
大小:46
值:25
大小:45
值:27
大小:44
值:0
大小:43
值:37
大小:50
值:8
大小:49
值:43
大小:48
值:18
大小:47
值:42
大小:46
值:1
大小:45
值:41
大小:44
值:24
大小:43
值:16
大小:50
值:12
大小:49
值:20
大小:48
值:35
大小:47
值:21
大小:46
值:30
大小:45
值:27
大小:44
值:11
大小:43
值:40
大小:50
值:27
大小:49
值:3
大小:48
值:20
大小:47
值:34
大小:46
值:24
大小:45
值:33
大小:44
值:2
大小:43
值:46
大小:50
值:25
大小:49
值:45
大小:48
值:36
大小:47
值:3
大小:46
值:48
大小:45
值:34
大小:44
值:35
大小:43
值:37
大小:50
值:34
大小:49
值:10
大小:48
值:31
大小:47
值:33
大小:46
值:6
大小:45
值:47
大小:44
值:2
大小:43
值:20
大小:50
值:32
大小:49
值:39
大小:48
值:40
大小:47
值:15
大小:46
值:49
大小:45
值:6
大小:44
值:5
大小:43
值:0
大小:50
值:10
大小:49
值:27
大小:48
值:36
大小:47
值:34
大小:46
值:15
大小:45
值:46
大小:44
值:29
大小:43
值:42
大小:50
值:38
大小:49
值:21
大小:48
值:43
大小:47
值:16
大小:46
值:10
大小:45
值:33
大小:44
值:4
大小:43
值:46
大小:50
值:47
大小:49
值:37
大小:48
值:31
大小:47
值:5
大小:46
值:0
大小:45
值:32
大小:44
值:22
大小:43
值:33
大小:50
值:27
大小:49
值:19
大小:48
值:46
大小:47
值:0
大小:46
值:24
大小:45
值:5
大小:44
值:1
大小:43
值:37
大小:50
值:34
大小:49
值:38
大小:48
值:23
大小:47
值:2
大小:46
值:28
大小:45
值:7
大小:44
值:47
大小:43
值:21
大小:50
值:30
大小:49
值:39
大小:48
值:36
大小:47
值:47
大小:46
值:26
大小:45
值:45
大小:44
值:34
大小:43
值:27
大小:50
值:33
大小:49
值:22
大小:48
值:31
大小:47
值:32
大小:46
值:8
大小:45
值:9
大小:44
值:15
大小:43
值:37
大小:50
值:29
大小:49
值:17
大小:48
值:36
大小:47
值:6
大小:46
值:22
大小:45
值:35
大小:44
值:38
大小:43
值:9
大小:50
值:29
大小:49
值:19
大小:48
值:11
大小:47
值:10
大小:46
值:26
大小:45
值:5
大小:44
值:28
大小:43
值:10
大小:50
值:47
大小:49
值:21
大小:48
值:3
大小:47
值:25
大小:46
值:15
大小:45
值:38
大小:44
值:4
大小:43
值:1
大小:50
值:16
大小:49
值:37
大小:48
值:33
大小:47
值:24
大小:46
值:44
大小:45
值:3
大小:44
值:12
大小:43
值:29
大小:50
值:21
大小:49
值:2
大小:48
值:34
大小:47
值:42
大小:46
值:38
大小:45
值:27
大小:44
值:5
大小:43
值:22
大小:50
值:1
大小:49
值:17
大小:48
值:32
大小:47
值:28
大小:46
值:49
大小:45
值:15
大小:44
值:35
大小:43
值:23
大小:50
值:38
大小:49
值:43
大小:48
值:0
大小:47
值:5
大小:46
值:34
大小:45
值:4
大小:44
值:6
大小:43
值:5
大小:50
值:43
大小:49
值:41
大小:48
值:30
大小:47
值:39
大小:46
值:42
大小:45
值:40
大小:44
值:19
大小:43
值:19
大小:50
值:48
大小:49
值:8
大小:48
值:15
大小:47
值:38
大小:46
值:36
大小:45
值:20
大小:44
值:12
大小:43
值:42
大小:50
值:40
大小:49
值:46
大小:48
值:21
大小:47
值:15
大小:46
值:14
大小:45
值:12
大小:44
值:34
大小:43
值:5
大小:50
值:9
大小:49
值:38
大小:48
值:11
大小:47
值:44
大小:46
值:40
大小:45
值:17
大小:44
值:3
大小:43
值:39
大小:50
值:12
大小:49
值:35
大小:48
值:30
大小:47
值:9
大小:46
值:46
大小:45
值:3
大小:44
值:26
大小:43
值:32
大小:50
值:12
大小:49
值:45
大小:48
值:22
大小:47
值:3
大小:46
值:17
大小:45
值:33
大小:44
值:39
大小:43
值:11
大小:50
值:36
大小:49
值:18
大小:48
值:25
大小:47
值:2
大小:46
值:30
大小:45
值:15
大小:44
值:6
大小:43
值:44
大小:50
值:7
大小:49
值:19
大小:48
值:40
大小:47
值:2
大小:46
值:35
大小:45
值:41
大小:44
值:49
大小:43
值:2
大小:50
值:33
大小:49
值:22
大小:48
值:12
大小:47
值:15
大小:46
值:24
大小:45
值:38
大小:44
值:42
大小:43
值:40
大小:50
值:39
大小:49
值:22
大小:48
值:42
大小:47
值:9
大小:46
值:10
大小:45
值:36
大小:44
值:18
大小:43
值:48
大小:50
值:10
大小:49
值:47
大小:48
值:1
大小:47
值:41
大小:46
值:14
大小:45
值:8
大小:44
值:33
大小:43
值:23
大小:50
值:28
大小:49
值:30
大小:48
值:24
大小:47
值:17
大小:46
值:26
大小:45
值:15
大小:44
值:18
大小:43
值:13
大小:50
值:39
大小:49
值:32
大小:48
值:28
大小:47
值:17
大小:46
值:24
大小:45
值:26
大小:44
值:8
大小:43
值:18
大小:50
值:3
大小:49
值:4
大小:48
值:26
大小:47
值:14
大小:46
值:40
大小:45
值:0
大小:44
值:12
大小:43
值:6
大小:50
值:48
大小:49
值:15
大小:48
值:1
大小:47
值:14
大小:46
值:23
大小:45
值:36
大小:44
值:33
大小:43
值:4
大小:50
值:23
大小:49
值:13
大小:48
值:22
大小:47
值:2
大小:46
值:28
大小:45
值:39
大小:44
值:47
大小:43
值:22
大小:50
值:27
大小:49
值:44
大小:48
值:38
大小:47
值:5
大小:46
值:23
大小:45
值:0
大小:44
值:21
大小:43
值:30
大小:50
值:4
大小:49
值:3
大小:48
值:43
大小:47
值:45
大小:46
值:47
大小:45
值:9
大小:44
值:5
大小:43
值:2
大小:50
值:26
大小:49
值:7
大小:48
值:16
大小:47
值:49
大小:46
值:44
大小:45
值:5
大小:44
值:6
大小:43
值:22
大小:50
值:20
大小:49
值:29
大小:48
值:24
大小:47
值:2
大小:46
值:49
大小:45
值:36
大小:44
值:21
大小:43
值:3
大小:50
值:37
大小:49
值:14
大小:48
值:9
大小:47
值:13
大小:46
值:47
大小:45
值:30
大小:44
值:38
大小:43
值:20
大小:50
值:37
大小:49
值:39
大小:48
值:19
大小:47
值:48
大小:46
值:2
大小:45
值:23
大小:44
值:45
大小:43
值:29
大小:50
值:34
大小:49
值:11
大小:48
值:30
大小:47
值:31
大小:46
值:16
大小:45
值:35
大小:44
值:6
大小:43
值:38
大小:50
值:20
大小:49
值:31
大小:48
值:49
大小:47
值:42
大小:46
值:22
大小:45
值:14
大小:44
值:0
大小:43
值:12
大小:50
值:30
大小:49
值:9
大小:48
值:25
大小:47
值:43
大小:46
值:40
大小:45
值:19
大小:44
值:15
大小:43
值:32
大小:50
值:13
大小:49
值:36
大小:48
值:22
大小:47
值:14
大小:46
值:48
大小:45
值:15
大小:44
值:39
大小:43
值:49
大小:50
值:28
大小:49
值:26
大小:48
值:32
大小:47
值:43
大小:46
值:16
大小:45
值:36
大小:44
值:31
大小:43
值:38
大小:50
值:24
大小:49
值:26
大小:48
值:33
大小:47
值:45
大小:46
值:39
大小:45
值:31
大小:44
值:10
大小:43
值:25
大小:50
值:44
大小:49
值:38
大小:48
值:21
大小:47
值:37
大小:46
值:11
大小:45
值:35
大小:44
值:20
大小:43
值:26
大小:50
值:28
大小:49
值:45
大小:48
值:39
大小:47
值:40
大小:46
值:14
大小:45
值:33
大小:44
值:37
大小:43
值:45
大小:50
值:15
大小:49
值:26
大小:48
值:40
大小:47
值:31
大小:46
值:16
大小:45
值:25
大小:44
值:19
大小:43
值:43
大小:50
值:7
大小:49
值:48
大小:48
值:40
大小:47
值:1
大小:46
值:39
大小:45
值:4
大小:44
值:23
大小:43
值:39
大小:50
值:44
大小:49
值:47
大小:48
值:28
大小:47
值:6
大小:46
值:36
大小:45
值:3
大小:44
值:46
大小:43
值:19
大小:50
值:2
大小:49
值:24
大小:48
值:11
大小:47
值:16
大小:46
值:12
大小:45
值:5
大小:44
值:46
大小:43
值:29
大小:50
值:32
大小:49
值:5
大小:48
值:12
大小:47
值:1
大小:46
值:31
大小:45
值:48
大小:44
值:39
大小:43
值:42
大小:50
值:44
大小:49
值:36
大小:48
值:41
大小:47
值:35
大小:46
值:39
大小:45
值:18
大小:44
值:24
大小:43
值:38
大小:50
值:19
大小:49
值:8
大小:48
值:42
大小:47
值:9
大小:46
值:11
大小:45
值:25
大小:44
值:43
大小:43
值:15
大小:50
值:4
大小:49
值:40
大小:48
值:31
大小:47
值:16
大小:46
值:43
大小:45
值:47
大小:44
值:44
大小:43
值:31
大小:50
值:2
大小:49
值:11
大小:48
值:49
大小:47
值:34
大小:46
值:43
大小:45
值:25
大小:44
值:44
大小:43
值:43
大小:50
值:16
大小:49
值:22
大小:48
值:30
大小:47
值:9
大小:46
值:39
大小:45
值:45
大小:44
值:42
大小:43
值:14
大小:50
值:18
大小:49
值:42
大小:48
值:23
大小:47
值:30
大小:46
值:20
大小:45
值:4
大小:44
值:41
大小:43
值:27
大小:50
值:46
大小:49
值:30
大小:48
值:42
大小:47
值:41
大小:46
值:25
大小:45
值:38
大小:44
值:22
大小:43
值:30
大小:50
值:4
大小:49
值:9
大小:48
值:17
大小:47
值:2
大小:46
值:35
大小:45
值:42
大小:44
值:39
大小:43
值:6
大小:50
值:21
大小:49
值:27
大小:48
值:15
大小:47
值:14
大小:46
值:34
大小:45
值:13
大小:44
值:26
大小:43
值:8
大小:50
值:9
大小:49
值:5
大小:48
值:38
大小:47
值:30
大小:46
值:48
大小:45
值:34
大小:44
值:44
大小:43
值:7
大小:50
值:20
大小:49
值:6
大小:48
值:2
大小:47
值:44
大小:46
值:0
大小:45
值:25
大小:44
值:43
大小:43
值:4
大小:50
值:38
大小:49
值:45
大小:48
值:7
大小:47
值:25
大小:46
值:40
大小:45
值:3
大小:44
值:29
大小:43
值:17
大小:50
值:32
大小:49
值:0
大小:48
值:31
大小:47
值:19
大小:46
值:14
大小:45
值:12
大小:44
值:25
大小:43
值:26
大小:50
值:18
大小:49
值:19
大小:48
值:9
大小:47
值:27
大小:46
值:8
大小:45
值:48
大小:44
值:31
大小:43
值:30
大小:50
值:27
大小:49
值:37
大小:48
值:48
大小:47
值:26
大小:46
值:16
大小:45
值:7
大小:44
值:28
大小:43
值:7
大小:50
值:5
大小:49
值:39
大小:48
值:33
大小:47
值:0
大小:46
值:41
大小:45
值:17
大小:44
值:15
大小:43
值:28
大小:50
值:19
大小:49
值:1
大小:48
值:0
大小:47
值:33
大小:46
值:13
大小:45
值:26
大小:44
值:11
大小:43
值:34
大小:50
值:1
大小:49
值:22
大小:48
值:13
大小:47
值:9
大小:46
值:40
大小:45
值:0
大小:44
值:35
大小:43
值:22
大小:50
值:39
大小:49
值:19
大小:48
值:1
大小:47
值:7
大小:46
值:25
大小:45
值:30
大小:44
值:13
大小:43
值:33
大小:50
值:25
大小:49
值:0
大小:48
值:32
大小:47
值:19
大小:46
值:18
大小:45
值:2
大小:44
值:47
大小:43
值:40
大小:50
值:4
大小:49
值:0
大小:48
值:25
大小:47
值:18
大小:46
值:27
大小:45
值:35
大小:44
值:48
大小:43
值:31
大小:50
值:13
大小:49
值:18
大小:48
值:39
大小:47
值:7
大小:46
值:17
大小:45
值:29
大小:44
值:26
大小:43
值:9
大小:50
值:3
大小:49
值:30
大小:48
值:16
大小:47
值:29
大小:46
值:14
大小:45
值:45
大小:44
值:13
大小:43
值:42
大小:50
值:34
大小:49
值:0
大小:48
值:13
大小:47
值:4
大小:46
值:3
大小:45
值:12
大小:44
值:39
大小:43
值:8
大小:50
值:14
大小:49
值:21
大小:48
值:27
大小:47
值:41
大小:46
值:11
大小:45
值:29
大小:44
值:22
大小:43
|