| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 780 人关注过本帖
标题:[求助]:关于产生随机数的问题
只看楼主 加入收藏
hengde_li
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:131
专家分:178
注 册:2010-1-15
结帖率:91.67%
收藏
已结贴  问题点数:20 回复次数:7 
[求助]:关于产生随机数的问题
本人想把产生随机数的函数代码改成:如果给定种子号,按照种子号产生随机数,如果没有种子号,则将照系统时间作为种子号;下面是代码,编译通过,但运行出错。请教各位大侠赐教。谢谢!

#include <time.h>
#include <stdio.h>
#include <dos.h>

  void rnds(r,p,n)
  double *r,p[];
  int n;
  { int i,m;
    time_t t;
    double a;
    t = time(NULL);
    a = (double)t;
    if (r=NULL) r=a;
   
    double s,u,v;
    s=65536.0; u=2053.0; v=13849.0;
    for (i=0; i<=n-1; i++)
      { *r=u*(*r)+v; m=(int)(*r/s);
        *r=*r-m*s; p[i]=*r/s;
      }
    return;
  }




  main()
  { int i,j,n=50;
    double p[50],r;
    //r=1.0;
    rnds(p,n);
    printf("\n");
    for (i=0; i<=9; i++)
      { for (j=0; j<=4; j++)
          printf("%10.7lf  ",p[5*i+j]);
        printf("\n");
      }
    printf("\n");
  }

搜索更多相关主题的帖子: 随机数 
2010-01-15 14:21
jiangwu10057
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:341
专家分:667
注 册:2009-3-25
收藏
得分:2 
代码一个字:乱·
2010-01-15 15:30
CrystalFan
Rank: 8Rank: 8
来 自:江苏南京
等 级:蝙蝠侠
帖 子:187
专家分:802
注 册:2009-7-30
收藏
得分:2 
程序代码:
#include <time.h>
#include <stdio.h>
#include <dos.h>

void rnds(double *p,int n)
{ 
    double *r=0;
    int i,m;
    time_t t;
    double a;
    t = time(NULL);
    a = (double)t;
    if (r==NULL) r=&a;
    double s,u,v;
    s=65536.0; 
    u=2053.0; 
    v=13849.0;
    for (i=0; i<=n-1; i++)
    { 
        *r=u*(*r)+v; 
        m=(int)(*r/s);
        *r=*r-m*s;
        p[i]=*r/s;
    }
    return;
}




void main()
{
    int i,j,n=50;
    double p[50];
    //r=1.0;
    rnds(p,n);
    printf("\n");
    for (i=0; i<=9; i++)
    { 
        for (j=0; j<=4; j++)
            printf("%10.7lf\n",p[5*i+j]);
        printf("\n");
    }
    printf("\n");
}
你原来的代码在什么平台下编译通过的?从你的代码里看不出是否给定“种子号”。
只改了第五、七行,其他没动。
注意代码书写规范!
2010-01-15 15:38
ZTCK
Rank: 2
来 自:信宜
等 级:论坛游民
帖 子:20
专家分:39
注 册:2010-1-14
收藏
得分:2 
新手帮顶
2010-01-15 16:28
hengde_li
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:131
专家分:178
注 册:2010-1-15
收藏
得分:0 
可能我的意思没有说清楚,就是说函数的名字为: rdns(r,p,n);调用时如果用rdns(p,n)则函数里面的种子数为时间,如果用rdns(r,p,n)调用,则种子号为给定的r值。
所以我想上面的程序还得改一下,但我不知道改哪?大侠有何办法,请不吝赐教。谢谢!
2010-01-16 22:46
longlong89
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:小飞侠
威 望:6
帖 子:1043
专家分:2754
注 册:2009-8-18
收藏
得分:2 
找帖再问。。。

想象力征服世界
2010-01-17 18:13
xiaoyao4me
Rank: 1
等 级:新手上路
帖 子:1
专家分:3
注 册:2009-11-3
收藏
得分:2 
那样调用是否有问题?
2010-01-17 20:56
hengde_li
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:131
专家分:178
注 册:2010-1-15
收藏
得分:0 
调用不会有问题,我拿别的例子试过。
2010-01-18 10:00
快速回复:[求助]:关于产生随机数的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020589 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved