#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 生成随机不重复的整数序列的更多相关文章

  1. Asp.net生成随机不重复的函数(方法)

    // 生成三位毫秒字串         public static string Get_mSec()         {             string mSec = System.DateT ...

  2. Python生成随机不重复姓名昵称

    姓采用百家姓,名字从常用名字高频字选取两个汉字,再和当前时间戳组合,估计应该是不会重复了,代码如下: # -*- coding:utf-8 -*- import random import time ...

  3. sql生成随机不重复字符串 可指定长度

    存储过程: create procedure dbo.GetRandStr () output) AS BEGIN ), ), @ss varchar DECLARE @I INTEGER, @cou ...

  4. 1.java生成随机不重复10位字符串

    package org.changneng.util; import java.util.Random; public class A { public static void main(String ...

  5. python生成随机整数

    python生成随机不重复的整数,用random中的sample index = random.sample(range(0,10),10) 上面是生成不重复的10个从1~10的整数 python生成 ...

  6. 个人永久性免费-Excel催化剂功能第36波-新增序列函数用于生成规律性的循环重复或间隔序列

    啃过Excel函数的表哥表姐们,一定对函数的嵌套.数组公式等高级的应用有很深的体会,威力是大,但也烧死不少脑细胞,不少人就在这样的绕函数中光荣地牺牲了,走向从入门到放弃.Excel催化剂的创立,初衷就 ...

  7. C#产生不重复的随机数并生成随机文件名

    本文转自:http://blog.ciznx.com/post/csharprandomnumberandrandomfilename.aspx 在项目中会遇到需要批量生成文件的时候,比如 asp.n ...

  8. 使用Random随机生成[min,max]之间的整数:

    如下代码是生成范围在min到max之间的随机整数(包括min和max):   import java.util.Random; /** * 生成[min,max]的随机整数 * @author mei ...

  9. 用Java实现在【520,1314】之间生成随机整数的故事

    做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 在未来城市工作的的程序员小木,做了一个梦,梦到自己在塔鲁姆的街道上看到一个姑娘,这个姑娘从远处走向他,脸上带着微笑.让小木 ...

随机推荐

  1. 介绍开发Android手持终端PDA盘点APP软件

    介绍开发Android手持终端PDA盘点APP软件 软件需要自动识别我导入的TXT格式或者excl格式的盘点表,然后自动生成一个复盘数据,做AB比对,界面上需要显示的有总数量,单品数量,条码,编码,商 ...

  2. Open the Lock[HDU1195]

    Open the Lock Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  3. BZOJ4327 : JSOI2012 玄武密码

    对所有询问串建立AC自动机. 然后将母串在AC自动机上跑,每走到一个点x,从x点出发沿着fail指针能到的所有前缀都是匹配成功的,暴力向上走,碰到走过的就break,这样每个点最多只会被标记一次. 时 ...

  4. BZOJ3648 : 寝室管理

    求环套外向树上节点数不小于K的路径数. 首先树的话直接点分治+树状数组$O(n\log^2n)$搞定 环套树的话,先删掉多余的边(a,b) 然后变成了一棵树,直接点分治 然后在树上找到a到b的路径,将 ...

  5. ubuntu下Vim配色方案Solarized的配置

    系统:ubuntu 12.04 LTS vim版本:7.4 ---------------------------------------------------------------------- ...

  6. mysql中INSTR函数的用法

    mysql中INSTR函数的用法 INSTR(字段名, 字符串) 这个函数返回字符串在某一个字段的内容中的位置, 没有找到字符串返回0,否则返回位置(从1开始) SELECT * FROM tblTo ...

  7. eWebeditor编辑器上传图片路径错误解决方法[疑难杂症]【转,作者:unvs】

    做了一个多版本的网站,后台用的编辑器是eWebeditor,NET版,后面发现上传图片或者文件之后,路径错误无法显示,必须手工修改才行.. 为了更清楚的说明问题,我下面会说的比较详细,首先是网站文件框 ...

  8. mac 下的 top 命令

    mac 下的 top 命令 文章目录 以前只是在 linux 机器上使用 top 命令.常用的快键键是: p 键 - 按 cpu 使用率排序 m 键 - 按内存使用量排序 这 2 个快捷键在 mac ...

  9. iOS学习—JSON数据解析

      关于在iOS平台上进行JSON解析,已经有很多第三方的开源项目,比如TouchJson,JSONKit,SBJon等,自从iOS5.0以后,苹果SDK推出了自带的JSON解决方案NSJSONSer ...

  10. 【C语言】01-C语言概述

      说明:这个C语言专题,是学习iOS开发的前奏.也为了让有面向对象语言开发经验的程序员,能够快速上手C语言.如果你还没有编程经验,或者对C语言.iOS开发不感兴趣,请忽略 为什么iOS开发要先学C语 ...