请教关于rand()函数的算法实现

SystemAdministrator 2002-05-31 10:15:31
谁知道rand()函数算法的实现?
...全文
482 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
luty 2002-06-01
  • 打赏
  • 举报
回复
这种问题在很多参考书上都有的,自己动手找一找马。
================================================================

CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!

★ 浏览帖子速度极快![建议系统使用ie5.5以上]。 ★ 多种帖子实现界面。
★ 保存帖子到本地[html格式]★ 监视您关注帖子的回复更新。
★ 可以直接发贴、回复帖子★ 采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录!
★ 支持在线检测程序升级情况,可及时获得程序更新的信息。

★★ 签名 ●
可以在您的每个帖子的后面自动加上一个自己设计的签名哟。

Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe [自解压]

weihere 2002-06-01
  • 打赏
  • 举报
回复
我在图书馆看到一本书上有讲过,是基于随机模拟原理的蒙特卡洛方法
只是他是用fortran写的,我看不懂,你可一搜索相关的资料
JeasonZhao 2002-06-01
  • 打赏
  • 举报
回复
呵呵,看错了,不好意思
JeasonZhao 2002-06-01
  • 打赏
  • 举报
回复
不是吧,rand的伪随机数,但是前面的代码是不是每次出的结果都是一样?
xiaoya 2002-06-01
  • 打赏
  • 举报
回复
H.263 里的伪随机数生成算法:
其中 long 为 32 bits
double 为 64 bits

long rand(L,H)
long L,H;
{
static long randx = 1;
static double z = (double) 0x7fffffff;

long i,l;
double x;

randx = (randx * 1103515245;
i = randx & 0x7ffffffe;
x = ( (double) i) / z;
x *= (L+H+1);
j = x;

return (j - L);
}
saucer 2002-06-01
  • 打赏
  • 举报
回复
this is how Borland implemented it:

/*
* C/C++ Run Time Library - Version 5.0
*
* Copyright (c) 1987, 1992 by Borland International
* All Rights Reserved.
*
*/

#include <stdlib.h>

#define MULTIPLIER 0x015a4e35L
#define INCREMENT 1

static long Seed = 1;

void srand(unsigned seed)
{
Seed = seed;
}

int rand(void)
{
Seed = MULTIPLIER * Seed + INCREMENT;
return((int)(Seed >> 16) & 0x7fff);
}
  • 打赏
  • 举报
回复
同志们能否给予解决?!

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧