/*从n个数中选择随机选择m个, m个数互不重复******************//
int g_seed = 0;
void srand_quick(int seed)
{
g_seed = seed;
}
inline int rand_quick()
{
return ( ((g_seed = g_seed *214013L
+ 2531011L) >> 16) & 0x7fff )| ( ((g_seed = g_seed* 214013L
+ 2531011L) & 0x7fff0000) >>1);
}
inline char* getIntBytes(int i)
{
i = (i << 24) | ((i& 0xff00) << 8) | ((i & 0xff0000)>> 8) | (i >> 24);
return (char*)&i;
}
bool gen_k_from_n_to_file(char* filename, int k, int n)
{
if(!filename || k < 0|| k > n || n > 0x3fffffff)
return false;
FILE* fp = fopen(filename, "w+");
srand_quick(GetTickCount());
char int_str[13] = {0};
int remain = n;
int rd = 0;
for(int i = 0; i < n; ++i)
{
if((rd = rand_quick())% remain < k)
{
sprintf(int_str, "%010d\r\n",i);
printf(int_str);
fwrite(int_str, 1, strlen(int_str), fp);
--k;
}
--remain;
}
fclose(fp);
return true;
}