说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

怎样生成随机数

编辑:说三道四文库 发布时间:2017-11-21 03:14
HTML文档下载 WORD文档下载 PDF文档下载
我需要生成一个[0,1]之间的均匀分布的随机数,C++中应该有这样的库函数吧,好像是rand(),但不会用,望指教。
srand(time(0))//初始化随机种子。
int i = rand() % 32768;//获得一个0到32767之间的随机整数。
double d = i / 32767.0;//把它转化成[0,1]之间的浮点数。

我觉得这样就够随机的了。
不好意思,第一句分号掉了:
srand(time(0));
^_^
好,厉害
#include "time.h"

srand(time(0));                //初始化随机种子。
int i = rand() % n + m;        //获得一个m到n-1之间的随机整数。
要不要源代码??给个函数吧

#include <time.h>
// InitializeSeed(): set the random number generator seed
void InitializeSeed() {
srand((unsigned int) time(0));
}

// Uniform(): generate a uniformly distributed random 
// number between Low and High
int Uniform(int Low, int High) {
if (Low > High) {
cerr << "Illegal range passed to Uniform\n";
exit(1);
return 0; // Makes MS C++ shut up

}
else {
int IntervalSize = High - Low + 1;
int RandomOffset = rand() % IntervalSize;
return Low + RandomOffset;
}
}
楼上的朋友,你说的关于用系统时间生成的随机数是和系统时间有关的吧,如果在一个循环中使用,生出的会不会很接近?那生成的是真正的均匀分布么???
如果time()用rdtsc实现应该就不会有随机数接近的可能,..
那样的话,如果你是在Windows操作系统中,就使用API:GetTickCount吧。
srand(GetTickCount());
效率还比time()快10倍。
楼上的朋友,你说的关于用系统时间生成的随机数是和系统时间有关的吧,如果在一个循环中使用,生出的会不会很接近?那生成的是真正的均匀分布么???
->如果在循环中用srand初始化,我感觉有问题.
见例子:
#include <stdlib.h> 
#include <stdio.h> 

int main(void) 

   int i; 
   printf("Ten random numbers from 0 to 99\n\n"); 
   for(i=0; i<10; i++) {
      srand(time(0)); 
      printf("%d\n", rand() % 100); }  
   return 0; 


---------------------------------------------------
#include <stdlib.h> 
#include <stdio.h> 

int main(void) 

   int i; 

   printf("Ten random numbers from 0 to 99\n\n"); 
   srand(time(0)); 
   for(i=0; i<10; i++) {
      printf("%d\n", rand() % 100); }  
   return 0; 
}
up
rand()是不是有可能取不到数啊?
要是有的话什么办?
毕竟随机数的话有取不到某个数的可能啊~
#include <iostream>
#include <ctime>

int main()
{
srand( ( unsigned ) time( NULL ) );
for ( int i = 0; i < 1; ++i )
{
std::cout << rand() % 100 << ' ';
}
return 0;
}
制作主窗口显示前的版权窗口-Delphi资料 状态条插入可视控件-Delphi资料 做动态显示的控件-Delphi资料 做一个OpenGL控件-Delphi资料 Api函数列表——与打印相关-Delphi资料 Delphi 5快速创建控制面板程序 Delphi 编写Windows NT服务 Delphi 的 分 发 工 具 ─ ─InstallShield Delphi 关于系统编程中的技巧 Delphi3如何调用Excel Delphi5.0中的函数调用模式 用Delphi 编 程 时 如 何 利 用 线 程 Delphi的8个技巧 delphi函数参考手册 DELPHI键盘常用快捷键汇总(DEFAULT 和CLASSIC) Delphi实现自动切换输入法 Delphi使用汇编 Delphi系 统 提 示 信 息 的 汉 化 DELPHI下的多线程程序设计 Delphi下汉字输入法的编程及使用 在Delphi与C++之间实现函数与对象共享 DELPHI中处理时间 Delphi中的INI文件编程 DELPHI中的消息处理机制 Delphi中对目录拷贝、删除和搬移的操作 Delphi中任务栏状态区的编程 Delphi中如何处理2000年问题 Delphi中如何实现系统权限的设置 Delphi中异常的截获及其个性化处理 Delphi自定义消息应用一例 Delphi5中资源文件的创建和使用 个人所得税计税基数由原来的800元,修改现计税基数1200元,请修改? 关于权限 javascript中怎样去掉字符串中的空格 求购基于Html的全文检索(用于光盘发布的)相关技术(控件和接口资料) 大家碰到这种问题是怎么解决的??? 如何令窗体只加载一次!Dim aa As New Form2 aa.Show() 关于下载的问题!!!!!!!!非常急!!!!!!!!!!! DB2不能一次插入多条记录么?? 能将数字记钱方式转换为大写的方式? 我没有分了,可是我还有个问题 请问也SQL2000数据库Windows身份验证,SQL Server身份验证的问题?? 关于层的问题! delphi 高难度!有没有人搞得出! 讨论:CSDN该不该分两个区?(入门级与专业级) 各大版主请进 简单问题,在线等待,解决就结稿. 用DES算法算出的注册码怎么是乱字符? <<LINUX与UNIX_SHELL编程指南>>中不懂的问题 分 多了该怎么办呢?:-) 请问怎么读取.txt文件的第n行? 如何将一个象素点设置成某一种颜色(即绘制一个象素点). 如何使一中文网站系统,转成English版的系统呢? 将dbf文件中的一部分字段数据导入到db的一张表中[斑主帮忙] 在线游戏刷新问题,高手接招 关于关闭窗口的超级难题 请各位推荐一下用.net开发的OA产品或者公司 VB.NET问题 框架里如何得到地址栏上的地址?? KEIL C51的中断服务程序如何通过串口返回应答信息? OA中关于流程动态设定的设计问题,谢谢 那里有DB2下载啊? 菜鸟提问:为什么toolbar控件加到窗体上时,大小不能改变?我怎么设置宽和高都是原来样子的 最简单的一个问题 小程序,愿交流 小程序,愿交流 如何用api函数实现服务器和客户端的字符串传输?(讨论和将帖子提前的都有分拿) 如何绕过代理服务器? 急:打开记录集显示 :Timeout expired 那里有Informix下载啊? mouseDown方法为何不能重写? 矢量绘图中如何实现在视窗中输入这样的文本? (来者的分)我要做一个短消息系统应用于办公系统中,请问买一块手机好还是手机模块? 请各位大虾指点哪里有较好的asp教程下载? 利用com实现进程之间数据通信,给出例子或者讲解文章即可 可有人能回答我呀。 又是一个让人非常郁闷的问题,高手请进! 怎样为我的对话框窗体增加一幅背景图? 谢谢:chenyg2000等的无私帮助,使用了这种方法以后问题又来了! sql语句菜鸟问题:如何想把一个字段赋值为NULL,sql语句应该怎么写?谢谢! web service上怎样返回一个二进制文件? 大虾救我:数据库链接的问题 vbscript里的函数可不可以递归的? 一个图,上面有七颗星连着一块,还有一条蛇,组成什么词语 藏汉一家,( )亲人,藏汉同胞,情同( ).在括号里填上合适的人体组织、器官的名称. 下列属于理想特征的是( ) A.实现的可能性 B.超前性 C.现实性 D.实践性 E.时代性 多选题 职业具有以下哪些特征:() 选项:a、同一性 b、差异性 c、层次性 d、时代性 君不闻,唐家山东二百州的后面是什么?(杜甫《兵车行》) 我有一场辩论,是关于“当今社会,成立民间反扒组织应不应该提倡?”我方是反方.针对这一提问?最好犀利一点的问题. 刘氏家谱 帮忙翻译下 什么意思特别是那些地名..这是我家的族谱。。 我想知道那个吴西是哪里 那个安邑是哪啊 还有 福兴 福泰 是人名,我家老祖宗的小名。 设a为常数,且a >1,0≤x≤2π,则函数f(x)=cos2x+2asinx-1的最大值是A 2a+1 B 2a-1 C-2a-1 D a² 刘氏族谱 如图四,在△ABC中,AB=AC,∠A=36°,BD平分角ABC交AC于点D,DE平分角BDC交BC于点E,则EC/AD= 当他来到花店时却发现不知道买什么花 翻译成中文 美国务卿克里访问埃及 承诺美将与埃过伊朗最高领袖称美是微笑的敌人 对核谈美研发新型间谍机 可一小时内到达全球泰国芭堤雅发生游船沉没事故 造成中国如何确保机密数据安全?把密码藏在潜意港媒:设计师为《人民日报》新大楼辩护中国如何从西方垃圾中获益港报:“伙伴关系”成中国重要外交工具浙江普陀山大型翡翠观音宝像开雕(图)广州高端相亲会测谎仪上阵 许多女性表温州两干部停车救人被撞身亡 被追授“推荐几个公众号,愿她能与你陪伴长久你被谁忽悠加了仓?小米罕见跌出前五,“亲民”神话已经破如果权利的游戏中龙女使用笔记本,将会太有趣了:一场关于财神爷会计核算案例15年了,今天中国突然面美欧食言,真震惊?美国即将”失去“印度洋基地、白如何1s内看出对方是什么星座?奥巴马被演背锅侠,美联储才是大黑手如何正确地打开双子座?那些生活的小举止可以提升幸福感!
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘