在linux下如何较好的生成随机数
来源:互联网 发布:乐雪儿热水袋知乎 编辑:程序博客网 时间:2024/05/10 18:13
#include <stdlib.h>#include <errno.h>#include <iostream>#include <sys/time.h>using namespace std;int main(){ int iRandNum = -1; const int iRandBeg = 0; const int iRandEnd = 9999; struct timeval ts; struct tm* pstTimeInfo; char szTimeBuf[16] = {0}; char szUniqId[20] ={0}; /* gettimeofday(&ts, NULL); cout << ts.tv_sec << endl; cout << time(0) << endl; 注意:该值time(0)返回秒数和ts.tv_sec结果一样。 */ for(int i=0;i<10000;i++) { gettimeofday(&ts,NULL); pstTimeInfo = localtime((time_t *) &ts.tv_sec); strftime(szTimeBuf ,sizeof(szTimeBuf), "%Y%m%d%H%M%S", pstTimeInfo); //以秒数作为seed生成的随机数效果比较差,重复比较多 //srand((unsigned int) time(0)); //gen rand num,这里以微秒作为seed,效果相对好一点, //但也存在冲突 srand((unsigned int) ts.tv_usec); iRandNum = iRandBeg + (int)((float)(iRandEnd-iRandBeg)*rand()/(RAND_MAX+1.0)); snprintf(szUniqId, sizeof(szUniqId), "%s%04d", szTimeBuf, iRandNum); cout << szUniqId << endl; //usleep(100); } //end of for }
测试的数据如下:
- 在linux下如何较好的生成随机数
- 如何生成在某个区间的随机数
- 利用linux的/dev/urandom文件产生较好的随机数
- 利用linux的/dev/urandom文件产生较好的随机数
- Linux下随机数生成的常见方法
- 性能较好的随机数发生器
- 如何在Linux下生成crypt加密好的密码
- 在n不确定的情况下生成k个随机数
- windows下随机数的生成
- linux下的随机数
- php 在 fpm 下生成随机数研究
- Linux下生成随机数和随机字符串
- 如何在linux下快速生成当前目录下所有文件夹下所有文件的MD5
- 如何较好的使用BoxLayout
- linux 较好的网站资料
- SecureRandom生成“强随机数”用于生成RSA*公钥/私钥*window和linux下不一致的问题
- 在oracle数据库中如何生成UUID字段,生成随机数
- 在VC下如何产生随机数?
- Visual Studio 编译 clang
- cookie技术、session技术总结
- Oracle数据库的历史
- lammps 安装较好的帖子
- C++面向对象程序设计(谭浩强)阅读笔记3——关于运算符的重载
- 在linux下如何较好的生成随机数
- uva_10465Homer Simpson
- 0-1背包的动态规划解法
- struts2从一个action我想跳转到另一个action,并且带上值
- Word公式编辑器常见问题的解决办法
- OGRE基础教程五 Buffered Input
- 从程序员到项目经理(一)
- 探索推荐引擎内部的秘密
- Javascript 面向对象编程(一):封装