游戏开发论坛

 找回密码
 立即注册
搜索
查看: 6109|回复: 16

我写的一个随机数函数,非常容易理解,有毛病大家PP

[复制链接]

24

主题

161

帖子

179

积分

注册会员

Rank: 2

积分
179
发表于 2004-3-11 16:45:00 | 显示全部楼层 |阅读模式
float random()
{
   static float r1=1;
   static float r2=1;
   srand( (unsigned)time( NULL ) );
   float re=(rand()/r1*r2);
   while (r1==0)
         r1=rand();
   r2=rand();
   return re;
}
[em1] [em1] [em1] [em1]

193

主题

870

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
发表于 2004-3-11 16:58:00 | 显示全部楼层

Re:我写的一个随机数函数,非常容易理解,有毛病大家PP

我对随机数的知识了解得不多
但是 好像这个函数第一次取随机数的方法和以后的不一样
会不会影响随机性呢?

游戏变成精粹2有一篇讲随机数的文章 给了原码还有一些测随技术质量的工具
看看吧 可能对你有帮助

24

主题

161

帖子

179

积分

注册会员

Rank: 2

积分
179
 楼主| 发表于 2004-3-11 17:08:00 | 显示全部楼层

Re:我写的一个随机数函数,非常容易理解,有毛病大家PP

2里的函数看了,太麻烦了,就写了这个

测试函数没写,要做也简单,写个数组,看看累加值就可以了,实际使用效果还待进一步检验,

写这个是因为如果不做处理,每次调用srand()和rand(),出现的随机数是一样的,所以想了个用静态变量来打乱的主意

第一次和后面的调用没区别

193

主题

870

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
发表于 2004-3-11 17:10:00 | 显示全部楼层

Re:我写的一个随机数函数,非常容易理解,有毛病大家PP

第一次 r1和r2不是1么?是固定值啊
以后的 r1和r2就是随机数了吧
是不是 把
while (r1==0)
         r1=rand();
   r2=rand();
放到前面好一点
[em16]

24

主题

161

帖子

179

积分

注册会员

Rank: 2

积分
179
 楼主| 发表于 2004-3-12 09:56:00 | 显示全部楼层

Re:我写的一个随机数函数,非常容易理解,有毛病大家PP

对呀,我怎么没想到呢?!

6

主题

444

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
发表于 2004-3-12 10:55:00 | 显示全部楼层

Re:我写的一个随机数函数,非常容易理解,有毛病大家PP

有点昂贵。
nowpaper 该用户已被删除
发表于 2004-3-12 11:12:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

0

主题

2

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2004-3-12 18:01:00 | 显示全部楼层

Re:我写的一个随机数函数,非常容易理解,有毛病大家PP

srand 的话要是放同样的值每次出来的数都会是一样的。用你的函数,若在同一秒内取两次会不会取到同一值?

15

主题

155

帖子

157

积分

注册会员

Rank: 2

积分
157
发表于 2004-3-12 20:40:00 | 显示全部楼层

Re:我写的一个随机数函数,非常容易理解,有毛病大家PP

这个函数不报异常吗?

0

主题

63

帖子

63

积分

注册会员

Rank: 2

积分
63
发表于 2004-3-12 21:11:00 | 显示全部楼层

Re:我写的一个随机数函数,非常容易理解,有毛病大家PP

srand()调用一次就足够了。另外不清楚你期望的返回值的范围。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-7-1 11:03

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表