7,540
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <algorithm>
#include <functional>
#include <vector>
#include <ctime>
#include <cstdlib>
using namespace std;
// random generator function:
ptrdiff_t myrandom (ptrdiff_t i) { return rand()%i;}
// pointer object to it:
ptrdiff_t (*p_myrandom)(ptrdiff_t) = myrandom;
int main () {
srand ( unsigned ( time (NULL) ) );
vector<int> myvector;
vector<int>::iterator it;
// set some values:
for (int i=1; i<10; ++i) myvector.push_back(i); // 1 2 3 4 5 6 7 8 9
// using built-in random generator:
random_shuffle ( myvector.begin(), myvector.end() );
// using myrandom:
random_shuffle ( myvector.begin(), myvector.end(), p_myrandom);
// print out content:
cout << "myvector contains:";
for (it=myvector.begin(); it!=myvector.end(); ++it)
cout << " " << *it;
cout << endl;
return 0;
}
//随机数
private Random ra = new Random(DateTime.Now.Millisecond);
//数组
private int[] arr = new int[100000000];
//缓存记录数组最后一位的下标
private int arrLength = 0;
//比较函数 用于生成随机顺序
private int compare(int x, int y)
{
int r = ra.Next(3) - 1;
if (x == arr[arrLength] || y == arr[0])r++;
return r;
}
//生成数组
private void CreateArray()
{
arrLength = arr.Length - 1;
for (int i = 0, l = arr.Length; i < l; i++)
arr[i] = i;
Array.Sort<int>(arr, new Comparison<int>(compare));
}