Nw BBS 壬天堂世界

 找回密码
 注册
搜索
热搜: 资料集合
查看: 1362|回复: 8
收起左侧

水区万能,C语言的问题

[复制链接]
发表于 2008-2-26 14:42:49 | 显示全部楼层 |阅读模式
用rand函数生成随机数,70+随机树*570要等于10的倍数,怎么解决?
回复

使用道具 举报

发表于 2008-2-26 14:50:27 | 显示全部楼层
rand函数貌似生成的是伪随机数,还有一个函数SRAND可以生成随即数的种子,然后用RAND函数再做
回复

使用道具 举报

发表于 2008-2-26 17:46:53 | 显示全部楼层
70+随机树*570要等于10的倍数
把x设为实数
x=(70+rnd*570)\10
if x==0.00001 then printf x
貌似是这样吧?我也忘了,我整天把VB和C搞混的
回复

使用道具 举报

发表于 2008-2-26 17:48:23 | 显示全部楼层
int x=0
while(x-(x/10)*10!=0)
x=70+rand*570;

//具体的忘记了,大致就是这个意思,注意rand生成的是0-1之间的小数,
回复

使用道具 举报

发表于 2008-2-26 18:07:23 | 显示全部楼层
没学过then指令。
回复

使用道具 举报

发表于 2008-2-27 00:00:27 | 显示全部楼层
看到这问题才发现我很少用这函数

注意沙发的问题,然后是注意板凳的问题,因为生成的方式kuso,如果你的目的是非常“随机”,请想办法使用其他更好的函数(我也不会,自己查)或者在原有random上放大(当年图形图像用过,忘记了,大概是把生成数经过简单or复杂计算让其覆盖范围更大)

想起年会上抽奖用软件多次连续抽中同一人。。。。原因之一就是因为使用了这个生成函数
事后追究责任,据闻负责人说,其实我也是图方便网上下载的。。。。群众BS,一个软件公司开年会出现这种问题丢人不
回复

使用道具 举报

发表于 2008-2-27 00:52:20 | 显示全部楼层
。。。。一个也看不懂
回复

使用道具 举报

发表于 2008-2-27 01:17:38 | 显示全部楼层
原帖由 帕伽索斯 于 2008-2-27 00:00 发表
看到这问题才发现我很少用这函数

注意沙发的问题,然后是注意板凳的问题,因为生成的方式kuso,如果你的目的是非常“随机”,请想办法使用其他更好的函数(我也不会,自己查)或者在原有random上放大(当年 ...

我笑抽了[wdb1]
雖然當年我只懂的用EXCEL去弄抽獎系統(遠目
回复

使用道具 举报

发表于 2008-2-27 20:19:26 | 显示全部楼层
这个条件真扯……
原问题等价于:(70+x*570) mod 10 = 0  <=>  7+57x为整数  <=>  x为1/57的整数倍
不过如果要计算机的随机数正好是1/57的整数倍,这个恐怕几乎不可能,毕竟位数有限,而1/57是无限循环小数……
所以还是让x为随机生成的整数好了…… - -
比如:x=(int)(rand*10); y=70+x*570;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|Nw壬天堂世界 ( 京ICP备05022083号-1 京公网安备11010202001397号 )

GMT+8, 2024-10-9 17:23 , Processed in 0.021051 second(s), 4 queries , Redis On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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