散分了,关于随机函数的简单问题

xspace_time 2010-12-05 11:11:43
随机函数number_random(time)产生一个0-1之间的数字,然后计算骰子在1-6之间的概率是有句
int high=7,low=1;
func(int low,int high)
{
return (high-low+1)*number_random(time)+low;//这句如何实现从0-1到固定整数区间的转换的
}
...全文
143 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xspace_time 2010-12-06
  • 打赏
  • 举报
回复
看了3楼的比较明白,给30分
而且我的确两处写错了,给第一次指出错误的1楼和5楼没人多10分,剩余的50分平均分给所有人,这样主要是因为分数不是最重要的,最重要的是我要感谢大家的回复使我不必再一个很简单的小问题上花太多时间
modyaj 2010-12-05
  • 打赏
  • 举报
回复
一定要强制转换???????????????
無_1024 2010-12-05
  • 打赏
  • 举报
回复
强制转换一下
就想叫yoko 2010-12-05
  • 打赏
  • 举报
回复
是这么个意思
不如你要1-6之间的概率
那么你就1加上5个这样的0-1的随机数
这样你就有可能得到1-6直接的数了
liuintermilan 2010-12-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 thefirstz 的回复:]

写错了吧,应该是return (int)((high-low-1)*number_random(time))+low;
[/Quote]
同意
hw_henry2008 2010-12-05
  • 打赏
  • 举报
回复
[0,1]的数乘以X ,结果不就是一个[0,X]的数了吗???
然后你加上一个固定的基数MIN ,
结果不就是[MIN,X+MIN]的数呀
bdmh 2010-12-05
  • 打赏
  • 举报
回复
number_random(time)这是0-1的值,然后再乘以high-low+1,又加上low这就在high和low之间了,最低是low的值
昵称很不好取 2010-12-05
  • 打赏
  • 举报
回复
应该加个强制转换
pro_To_Life 2010-12-05
  • 打赏
  • 举报
回复
[Quote=引用楼主 pink9527 的回复:]
随机函数number_random(time)产生一个0-1之间的数字,然后计算骰子在1-6之间的概率是有句
int high=7,low=1;
func(int low,int high)
{
return (high-low+1)*number_random(time)+low;//这句如何实现从0-1到固定整数区间的转换的
}
[/Quote]
可以假设两种极端,易理解:
函数number_random(time)产生的是小数
当为0时:return low
当为1时:return high+1
low<=结果<=high+1 返回的是整形
無_1024 2010-12-05
  • 打赏
  • 举报
回复
类型不符啊
好比
-sizeof()
就是一个错误的变大
Athenacle_ 2010-12-05
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 modyaj 的回复:]

一定要强制转换???????????????
[/Quote]

对对对

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧