c 生成随机不重复的整数序列
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#include <time.h> void genNumber(const char *fileName,const int numCount)
{
int i = , j = ;
int *arr = (int*)malloc(sizeof(int) * numCount);
for(;i < numCount; ++i)
{
arr[i] = i;
}
FILE *fp = fopen(fileName,"w");
if(NULL == fp){printf("open %s failed\n",fileName);}
i = numCount;
while(i != )
{
j = rand()%i;
fprintf(fp,"%d ",arr[j]);
arr[j] = arr[--i];
}
fclose(fp);
} int main()
{
time_t t = clock();
genNumber("num.txt",);
printf("use time:%lu ms\n",clock() - t);
return ;
}
以下代码用于检测生成的数列,是否正确:
#include <stdio.h>
#include <malloc.h>
#include <memory.h>
#include <time.h> void checkNum(const char* fileName)
{
int size = ,numCount = ,i = ,j = ,max = ;
char *buf = NULL;
printf("checking %s ...\n",fileName);
FILE *fp = fopen(fileName,"r");
if(NULL == fp){printf("open %s error!\n",fileName);}
fseek (fp , , SEEK_END);
size = ftell (fp);
rewind(fp);
buf = (char*)malloc(sizeof(char)*size);
fread(buf,,size,fp);
for(i = ;buf[i];++i)
{
if(buf[i] == ' '){++numCount;}
}
free(buf);
rewind(fp);
buf = (char*)malloc(sizeof(char)*numCount);
memset(buf,,sizeof(char)*numCount);
for(i=;i<numCount;++i)
{
fscanf(fp,"%d ",&j);
if(buf[j] != )
{
printf("[ %d ] show %d times\n",j,(int)buf[j] + );
}
++buf[j];
if(j > max){max = j;}
}
fclose(fp);
free(buf);
printf("size = %d, numCount = %d, max = %d\n",size,numCount,max);
} int main(int argc,char *argv[])
{
if(argc != )
{
printf("argv error!\n");
return ;
}
time_t t = clock();
checkNum(argv[]);
printf("use time:%lu ms\n",clock() - t);
return ;
}
c 生成随机不重复的整数序列的更多相关文章
- Asp.net生成随机不重复的函数(方法)
// 生成三位毫秒字串 public static string Get_mSec() { string mSec = System.DateT ...
- Python生成随机不重复姓名昵称
姓采用百家姓,名字从常用名字高频字选取两个汉字,再和当前时间戳组合,估计应该是不会重复了,代码如下: # -*- coding:utf-8 -*- import random import time ...
- sql生成随机不重复字符串 可指定长度
存储过程: create procedure dbo.GetRandStr () output) AS BEGIN ), ), @ss varchar DECLARE @I INTEGER, @cou ...
- 1.java生成随机不重复10位字符串
package org.changneng.util; import java.util.Random; public class A { public static void main(String ...
- python生成随机整数
python生成随机不重复的整数,用random中的sample index = random.sample(range(0,10),10) 上面是生成不重复的10个从1~10的整数 python生成 ...
- 个人永久性免费-Excel催化剂功能第36波-新增序列函数用于生成规律性的循环重复或间隔序列
啃过Excel函数的表哥表姐们,一定对函数的嵌套.数组公式等高级的应用有很深的体会,威力是大,但也烧死不少脑细胞,不少人就在这样的绕函数中光荣地牺牲了,走向从入门到放弃.Excel催化剂的创立,初衷就 ...
- C#产生不重复的随机数并生成随机文件名
本文转自:http://blog.ciznx.com/post/csharprandomnumberandrandomfilename.aspx 在项目中会遇到需要批量生成文件的时候,比如 asp.n ...
- 使用Random随机生成[min,max]之间的整数:
如下代码是生成范围在min到max之间的随机整数(包括min和max): import java.util.Random; /** * 生成[min,max]的随机整数 * @author mei ...
- 用Java实现在【520,1314】之间生成随机整数的故事
做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 在未来城市工作的的程序员小木,做了一个梦,梦到自己在塔鲁姆的街道上看到一个姑娘,这个姑娘从远处走向他,脸上带着微笑.让小木 ...
随机推荐
- AngularJS学习笔记一:简单入门
阿里云网站的前端是AngularJS实现的. 先下载AngularJS的开发工具包,我下载的angular-1.4.0. 在合适位置引入js文件: <script src="angul ...
- 转 BHO API HOOK Wininet基于IE编程的一些资料
BHO原理:推荐vc base中的文章: 如何使用BHO定制你的Internet Explorer浏览器 API HOOK的基本原理:推荐C++ builder 研究中的文章: API Hook基 ...
- 数学+高精度 ZOJ 2313 Chinese Girls' Amusement
题目传送门 /* 杭电一题(ACM_steps 2.2.4)的升级版,使用到高精度: 这次不是简单的猜出来的了,求的是GCD (n, k) == 1 最大的k(1, n/2): 1. 若n是奇数,则k ...
- Codeforces 498C Array and Operations(最大流)
题目是给一些数和<数对>的下标,然后进行操作:对某个<数对>中的两个数同时除以一个都能被它们整除且不等于1的数,要求的就是最多能进行多少次操作. 除数一定是素数,就是要决定某素 ...
- BZOJ3867 : Nice boat
每个点最多被修改$O(\log n)$次,线段树记录区间最值暴力更新. #include<cstdio> #define N 262145 int T,n,m,i,op,c,d,p,s[N ...
- Codeforces Round #206 (Div. 2) A. Vasya and Digital Root
#include <iostream> using namespace std; int main(){ int k,d; cin >> k >>d; ) { k ...
- Redis内存存储结构分析
1 Redis 内存存储结构 本文是基于 Redis-v2.2.4 版本进行分析. 1.1 Redis 内存存储总体结构 Redis 是支持多key-value数据库(表)的,并用 RedisDb 来 ...
- linux下安装uuid库
1.linux 下安装UUID库 1.1)ubuntu下安装uuid链接库 sudo apt-get install uuid-dev 1.2)CentOS yum install libuuid-d ...
- CreateFeatureClass 异常,尝试读取或写入受保护的内存 Access
在创建要素时出现如下异常,百思不得其解. 后经过多次试验,发现文件名改为其他的就可以了.自出的文件名为"第3条",后将文件名改为"A3"等,则可正常创建. 后再 ...
- 短语密码(blowfish_secret)的设置
简单的说,phpmyadmin就是一种mysql的管理工具,安装该工具后,即可以通过web形式直接管理mysql数据,而不需要通过执行系统命令来管理,非常适合对数据库操作命令不熟悉的数据库管理者,下面 ...