一个关于VB中RND函数的问题
我用一个方法来求特定范围的随机数,如求1~7的随机数,有((rnd*7)\1)+1为什么运行的结果1的机率是2~7的一半?(已使用Randomize,请告诉我错在哪里)我...
我用一个方法来求特定范围的随机数,如求1~7的随机数,有
((rnd*7)\1)+1
为什么运行的结果1的机率是2~7的一半?
(已使用Randomize,请告诉我错在哪里)
我想知的是错在哪,不是给我个公式,还有我做这个算法的时候我是用FOR循环了10000遍的,但用公式的话就符合统计学结果 展开
((rnd*7)\1)+1
为什么运行的结果1的机率是2~7的一半?
(已使用Randomize,请告诉我错在哪里)
我想知的是错在哪,不是给我个公式,还有我做这个算法的时候我是用FOR循环了10000遍的,但用公式的话就符合统计学结果 展开
展开全部
\这个符号
比如1.1\ 1 = 1
但是1.5 \ 1 = 2 了
每个数字都向上补一位
所以 1的概率就比其他的少一半。
---------------------------------
你输出一万次也是这样?
这个是伪随机数,所以想要真正符合概率统计也是不可能的。
Rnd 函数返回小于 1 但大于或等于 0 的值。
number 的值决定了 Rnd 生成随机数的方式。
对最初给定的种子都会生成相同的数列,因为每一次调用 Rnd 函数都用数列中的前一个数作为下一个数的种子。
在调用 Rnd 之前,先使用无参数的 Randomize 语句初始化随机数生成器,该生成器具有根据系统计时器得到的种子。
为了生成某个范围内的随机整数,可使用以下公式:
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
这里,upperbound 是随机数范围的上限,而 lowerbound 则是随机数范围的下限。
注意 若想得到重复的随机数序列,在使用具有数值参数的 Randomize 之前直接调用具有负参数值的 Rnd。使用具有同样 number 值的 Randomize 是不会得到重复的随机数序列的。
比如1.1\ 1 = 1
但是1.5 \ 1 = 2 了
每个数字都向上补一位
所以 1的概率就比其他的少一半。
---------------------------------
你输出一万次也是这样?
这个是伪随机数,所以想要真正符合概率统计也是不可能的。
Rnd 函数返回小于 1 但大于或等于 0 的值。
number 的值决定了 Rnd 生成随机数的方式。
对最初给定的种子都会生成相同的数列,因为每一次调用 Rnd 函数都用数列中的前一个数作为下一个数的种子。
在调用 Rnd 之前,先使用无参数的 Randomize 语句初始化随机数生成器,该生成器具有根据系统计时器得到的种子。
为了生成某个范围内的随机整数,可使用以下公式:
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
这里,upperbound 是随机数范围的上限,而 lowerbound 则是随机数范围的下限。
注意 若想得到重复的随机数序列,在使用具有数值参数的 Randomize 之前直接调用具有负参数值的 Rnd。使用具有同样 number 值的 Randomize 是不会得到重复的随机数序列的。
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
单片机,即单片微控制器,也称为单片微型计算机,是将中央处理器(CPU)、存储器(ROM,RAM)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询