如何用C语言产生0到1之间的随机数?

我现在做的程序里要生成一万个随机点现在随机数生成程序搞不定致使生成的点都是等差序列排列的~~哪位达人来帮个忙谢谢阿~~~现在主要就是要生成0到1之间的随机数然后乘以我原先... 我现在做的程序里要生成一万个随机点 现在随机数生成程序搞不定 致使生成的点都是等差序列排列的~~哪位达人来帮个忙 谢谢阿~~~

现在主要就是要生成0到1之间的随机数 然后乘以我原先的坐标 其他都搞定了 就是请问如何实现这个0到1的随机数阿?!?

实在不好意思啊 我现在没有积分 所以都悬赏不起来~~摆脱哪位好人帮帮忙阿~~
展开
 我来答
爱染年
2017-03-28 · 知道合伙人互联网行家
爱染年
知道合伙人互联网行家
采纳数:4751 获赞数:7830
国家励志奖学金获得者

向TA提问 私信TA
展开全部

方法一:

1、功能:

产生0到1之间均匀分布的一个随机数

2、方法说明:

设m=216,产生产生0到1之间均匀分布的一个随机数的计算公式如下:

ri=mod(2053ri-1 +13849,m),i=1,2,3……

pi =ri/m

例:连续产生10个0到1之间均匀分布的一个随机数 。r的初值取5.0

   #include "stdio.h"
    double rnd1(double *r)
    { int m;
      double s,u,v,p;
      s=65536.0; u=2053.0; v=13849.0;
      m=(int)(*r/s); *r=*r-m*s;
      *r=u*(*r)+v; m=(int)(*r/s);
      *r=*r-m*s; p=*r/s;
      return(p);
   }
   main()
   { int i;
     double r;
     r=5.0;
     printf("\n");
     for (i=0; i<=9; i++)
        printf("%10.7lf\n",rnd1(&r));
     printf("\n");
     getch();
   }

方法二:

float b=rand()/(RAND_MAX+1.0);

printf("%f\n",b);
注释:
stdlib.h头文件中有宏#define RAND_MAX 0x7fff 
rand()产生一个0到0x7ffff即0到32767之间的随机数 
rand()/(RAND_MAX+1.0)就等于一个0到1之间的小数了,因为rand()最大是32767最小是0,再除以32768就是一个0到1之间的小数(不能等于1),再乘以10就是一个0到10之间的数了(不等于10).最后再加1,就成了一个求1到10之间随机数的式子了.

linkzq
2007-05-18 · TA获得超过736个赞
知道小有建树答主
回答量:309
采纳率:0%
帮助的人:0
展开全部
可以写一个函数,利用math.h中的rand来产生随机浮点数。

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

// 精度0.001的随机浮点数
float randf()
{
return (float)(rand() % 1001) * 0.001f;
}

main()
{
int i;
for (i=0; i<100; ++i) printf("%.3f\n", randf());
system("pause");
}

有些书上说用rand得到的可能是负数。如果有出现负数的话,对rand得到的数取绝对值就可以了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
alshland
2007-05-18 · TA获得超过462个赞
知道答主
回答量:70
采纳率:0%
帮助的人:0
展开全部
用stdlib.h中的随机数产生器。当然还要#include<time.h> 首先srand(time(NULL));种随机数种子。然后用算式float result=rand()%256;rand()是产生一个介于0到256的随机数的函数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ad36272
2007-05-18 · TA获得超过176个赞
知道小有建树答主
回答量:111
采纳率:0%
帮助的人:82.3万
展开全部
http://zhidao.baidu.com/question/4856192.html?si=1

看看吧
别人已经答了
呵呵
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式