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.提升自己 我有一个乐园,面向编程,春暖花开! 在未来城市工作的的程序员小木,做了一个梦,梦到自己在塔鲁姆的街道上看到一个姑娘,这个姑娘从远处走向他,脸上带着微笑.让小木 ...
随机推荐
- 贪心 Codeforces Round #301 (Div. 2) B. School Marks
题目传送门 /* 贪心:首先要注意,y是中位数的要求:先把其他的都设置为1,那么最多有(n-1)/2个比y小的,cnt记录比y小的个数 num1是输出的1的个数,numy是除此之外的数都为y,此时的n ...
- VS 2010 WebSite网站 使用CodeBehide 方式开发[Web应用程序项目转Web网站]
由于生成Web应用程序的文件非常大,100M左右,上传到香港太慢,对于运维工作很不现实, 所以只能改用单个源代码文件上传方式,也就是Web网站方式,但VS2010中只提供Web网站转Web应用程序功能 ...
- 稳定的奶牛分配 && 二分图多重匹配+二分答案
题意: 农夫约翰有N(1<=N<=1000)只奶牛,每只奶牛住在B(1<=B<=20)个奶牛棚中的一个.当然,奶牛棚的容量有限.有些奶牛对它现在住的奶牛棚很满意,有些就不太满意 ...
- HDU 2531 (BFS搜索)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2531 题目大意: 你的身体占据多个点.每次移动全部的点,不能撞到障碍点,问撞到目标点块(多个点)的最 ...
- 我理解的 js 的观察者模式 Observable
我第一次看 四人帮 写的<设计模式>时一头雾水,现在也是,或许其是针对专业的程序员学习使用的. 通过对Ext / Backbone 源码的学习,可总结如下: 模式 - 就是对解决某一类特定 ...
- iis浏览网页时提示无法显示 XML 页
无法显示 XML 页. 使用 样式表无法查看 XML 输入.请更正错误然后单击 刷新按钮,或以后重试. 处理资源 'http://localhost/ 时出错.第 1 ...
- https的了解
经常用支付宝,看到了https就查了一下. HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议. 简单讲是HTTP的安全版.即HTTP下加入SSL层, ...
- MySQL的show语句大全
常用的MySQL show 语句列举如下: 1.show databases ; // 显示mysql中所有数据库的名称 2.show tables [from database_name]; // ...
- Angularjs - 路由 angular-ui-router
注意,使用的路由不是官方的,而是第三方的.因为这个更加强大支持嵌套而且大家都是这样用的 http://www.tuicool.com/articles/zeiy6ff http://www.open- ...
- gnuplotx轴的logscale显示
假设数据是这样子的: gnuplot脚本如下: set terminal postscript eps color enhanced set log x set log y set format x ...