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.提升自己 我有一个乐园,面向编程,春暖花开! 在未来城市工作的的程序员小木,做了一个梦,梦到自己在塔鲁姆的街道上看到一个姑娘,这个姑娘从远处走向他,脸上带着微笑.让小木 ...
随机推荐
- QUnit使用笔记-4保持原子性与分组
原子性: 当将许多测试用例放到一起测试的时候,可能会因为相互的副作用而出错:这个时候应该尽可能将他们分别放到test()中测试: 对应测试到Dom,应该尽可能地使用#qunit-fixture,因为它 ...
- WPF MVVM模式下的无阻塞刷新探讨
很多时候我们需要做一个工作,在一个方法体里面,读取大数据绑定到UI界面,由于长时间的读取,读取独占了线程域,导致界面一直处于假死状态.例如,当应用程序开始读取Web资源时,读取的时效是由网络链路的速度 ...
- ubuntu桌面进不去,我跪了
ubuntu12.04 输入密码正确,但仍然跳回到登陆界面,实在受不了啊! 不知道bug再哪里,但是有个方法真是屡试不爽啊.. ctrl+alt+f1切换到字符界面 /home/xxx/.Xautho ...
- BZOJ3743 : [Coci2014]Kamp
d[x][0]表示x点向下走且回到x点的最少代价 d[x][1]表示x点向下走但不回到x点的最少代价 d[x][2]表示x点向下走的最长路 d[x][3]表示x点向下走的次长路 u[x][0]表示x点 ...
- MathType 插入定义的chapter and section break后无法隐藏
每一章标题后面插入一个“Next Section Break”,这样定稿后各章文件组合为总文件后,方程编号会自动递增,如果已经插入了默认的“Equation Chapter 1 Section 1”, ...
- Java读数据是的编码问题。
今天使用Java的I/O读写数据的时候,出现了中文乱码问题,在老师的帮助下找到了问题的根源: 在window中新建文件时,如果你新建的是文本文件或者是一个windows无法识别的文件,他默认使用的编码 ...
- CentOS目录结构超详细版
最近初学Linux 对linux的目录产生了很多疑问,看到这篇文章,让我顿时对目录有了一个清晰的认识!推荐给大家! ------------------------------------------ ...
- Struts2之自定义类型转换器
Struts2自定义类型转换器分为局部类型转换器和全局类型转换器 (1)局部类型转换器 如果页面传来一个参数reg.action?birthday=2010-11-12到后台action,然后属性用d ...
- [转载] - QWidget、QMainWindow、QDialog和QFrame的区别
继承关系:在Qt中所有的类都有一个共同的基类QObject ,QWidget直接继承与QPaintDevice类,QDialog.QMainWindow.QFrame直接继承QWidget 类. ...
- html5+css3
1,文件声明,<!Doctype>,不再有严格模式和混杂模式 2语意的标签 1,header 头 section中 nav导航(中上) aside侧边栏(中左) article内容(中右) ...