Random.range包括10吗
答案:2 悬赏:0 手机版
解决时间 2021-03-15 20:11
- 提问者网友:那叫心脏的地方装的都是你
- 2021-03-15 09:32
Random.range包括10吗
最佳答案
- 五星知识达人网友:北方的南先生
- 2021-03-15 10:32
他的意思就是,如果获取0.0f~10.0f 那么就会返回[0,10],而获取0~10就会返回0,1,2……9
浮点为什么要包含呢?没有为什么,人家就是这么设计的……
(在计算机中的随机数一般通过线性同余获得的,最开始得到的是一个随机范围很大的、均匀分布的整数,设其值域为[0,
MAXF],那么获得一个包含上下限的浮点数就是:min + result / MAXF * (max -
min),无需考虑max和min的实际大小关系;获得一个不包含上限的整数就是:min + result / (MAXF+1) *(max -
min),需要考虑max和min的实际大小关系。这里有个问题:为什么MAXF要加1呢?这和数据类型转换有关,具体自己想一下啦!下面附上一些代码:)
// 产生一个均匀分布的浮点随机数,这个值的值域是 [0.0, 1.0)
// 种子被改变一次
public float Range()
{
return (float)(Next() / (MAX+1));
}
// 产生一个均匀分布的浮点随机数,这个值的值域是 [minValue, maxValue]
// 种子被改变一次
public float Range(float minValue, float maxValue)
{
return ((float)(Next() / MAX)) * (maxValue - minValue) + minValue;
}
// 产生一个均匀分布的整型随机数,这个值的值域是 [minValue, maxValue]
// 种子被改变一次
public Int32 Range(Int32 minValue, Int32 maxValue)
{
if (maxValue < minValue)
{
Swap(ref minValue, ref maxValue);
}
return minValue + (Int32)(Range() * (maxValue - minValue + 1));
}
浮点为什么要包含呢?没有为什么,人家就是这么设计的……
(在计算机中的随机数一般通过线性同余获得的,最开始得到的是一个随机范围很大的、均匀分布的整数,设其值域为[0,
MAXF],那么获得一个包含上下限的浮点数就是:min + result / MAXF * (max -
min),无需考虑max和min的实际大小关系;获得一个不包含上限的整数就是:min + result / (MAXF+1) *(max -
min),需要考虑max和min的实际大小关系。这里有个问题:为什么MAXF要加1呢?这和数据类型转换有关,具体自己想一下啦!下面附上一些代码:)
// 产生一个均匀分布的浮点随机数,这个值的值域是 [0.0, 1.0)
// 种子被改变一次
public float Range()
{
return (float)(Next() / (MAX+1));
}
// 产生一个均匀分布的浮点随机数,这个值的值域是 [minValue, maxValue]
// 种子被改变一次
public float Range(float minValue, float maxValue)
{
return ((float)(Next() / MAX)) * (maxValue - minValue) + minValue;
}
// 产生一个均匀分布的整型随机数,这个值的值域是 [minValue, maxValue]
// 种子被改变一次
public Int32 Range(Int32 minValue, Int32 maxValue)
{
if (maxValue < minValue)
{
Swap(ref minValue, ref maxValue);
}
return minValue + (Int32)(Range() * (maxValue - minValue + 1));
}
全部回答
- 1楼网友:野慌
- 2021-03-15 10:50
random.range(min,max);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯