24小时热门版块排行榜    

查看: 2013  |  回复: 14
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

tc1788

铁虫 (小有名气)

[交流] 【求助】产生0~1之间随机数的函数

产生0~1之间随机数的函数 大家帮帮忙好吗
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liuyalihd

铜虫 (小有名气)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
woshilsh(金币+2,VIP+0): 9-6 16:18
给你段代码看看吧!

#define IADD   453806245
#define IMUL   314159269
#define MASK   2147483647
#define SCALE  0.4656612873e-9

int randSeedP = 17;

void InitRand (int randSeedI)
{
  struct timeval tv;

  if (randSeedI != 0) randSeedP = randSeedI;
  else {
    gettimeofday (&tv, 0);
    randSeedP = tv.tv_usec;
  }
}

real RandR ()
{
  randSeedP = (randSeedP * IMUL + IADD) & MASK;
  return (randSeedP * SCALE);
}

#if NDIM == 2

void VRand (VecR *p)
{
  real s;

  s = 2. * M_PI * RandR ();
  p->x = cos (s);
  p->y = sin (s);
}

#elif NDIM == 3

void VRand (VecR *p)
{
  real s, x, y;

  s = 2.;
  while (s > 1.) {
    x = 2. * RandR () - 1.;
    y = 2. * RandR () - 1.;
    s = Sqr (x) + Sqr (y);
  }
  p->z = 1. - 2. * s;
  s = 2. * sqrt (1. - s);
  p->x = s * x;
  p->y = s * y;
}

#endif
11楼2009-09-06 13:34:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 15 个回答

ms98


sunxiao(金币+1,VIP+0):谢谢参与,欢迎常来 7-15 06:50
srand( time( NULL ) );  //种子函数
rand();  //产生随机数的函数
其实google一下啥都有了
2楼2009-07-14 22:09:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

羽寒月

银虫 (小有名气)

★ ★
wangen994(金币+1,VIP+0):感谢参与讨论 7-16 09:05
tc1788(金币+1,VIP+0):谢谢 7-29 10:05
要0和1之间的还要除一下
a = rand()/(RAND_MAX+1.0);
3楼2009-07-15 15:49:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

argo

铁杆木虫 (著名写手)

上善若水

一般的随机函数都是0-1之间的吧
居善地,心善渊,与善仁,言善信,正善治,事善能,动善时。
4楼2009-07-15 17:48:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见