ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
Python自动化办公应用大全 Excel 2021函数公式学习大典 Kutools for Office 套件发布 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: tanja8165

[求助] 怎么在excel里产生一个在正负0.04区间内的随机数?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-3-3 17:28 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 chyj0588 于 2009-3-2 18:59 发表
假设数在A1,则 =$A$1+(RAND()-RAND())*0.6  往下拉          ,就会求出A1在 0.6±0.6范围的随即数 。


这个做法是错误的, 这等于说 rand()-rand() 可以生成均匀的 -1到1的随机数
假设我要得到 >0.5 的概率, 显然此概率应该是 25%

rand() - rand() 的概率是
第一个rand() 必须在0.5到1, 即0.75加减0.25 之间, 且 第二个rand() 必须在0到0.5, 即0.25加减0.25 的范围, 这个概率也有 25%
但是
第一个rand()取 0.75减0.25的时候, 第二个rand()只能取 0.25减0.25
第一个rand()取 0.75加0.25的时候, 第二个rand()只能取 0.25加0.25

所以 rand()-rand() 大于0.5的概率只有12.5%

不信可以用随机试验验证.

实际上, 大家最好牢牢记住, 生成 某一范围的随机数的正确方法, 就是

rand()  *  ( 上限 - 下限 ) + 下限  (上限,下限可以是任意实数, 上限大于下限)

不要别出心裁了, 很容易犯错还看不出来的.

[ 本帖最后由 灰袍法师 于 2009-3-3 17:48 编辑 ]

TA的精华主题

TA的得分主题

发表于 2009-3-3 17:57 | 显示全部楼层
原帖由 wddn 于 2009-1-5 09:37 发表
区间是否包含正负0.04?
精度有无要求。


包含正负[闭区间]怎么设置的?

TA的精华主题

TA的得分主题

发表于 2009-3-3 20:12 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
是否包含区间边界 是无关重要的

因为连续随机变量, 刚好落在区间边界的概率为零

实际使用随机数的时候, 也不可能要求精度达到最后一位小数, 所以对结果的影响完全是可以忽略不计的.

[ 本帖最后由 灰袍法师 于 2009-3-3 20:14 编辑 ]

TA的精华主题

TA的得分主题

发表于 2009-3-3 20:18 | 显示全部楼层

回复 1楼 tanja8165 的帖子

可以这样=RAND()*0.04-0.04

TA的精华主题

TA的得分主题

发表于 2009-3-3 20:41 | 显示全部楼层
原帖由 cailc1361 于 2009-1-5 08:02 发表
=RAND()*0.08-0.04



请问这个与=RAND()*0.04  有什么不同呢?

TA的精华主题

TA的得分主题

发表于 2009-3-3 21:00 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
如果要使用函数 RAND 生成一随机数,并且使之不随单元格计算而改变,可以在编辑栏中输入“=RAND()”,保持编辑状态,然后按 F9,将公式永久性地改为随机数。

这个F9按钮是什么意思?对应哪项菜单?

TA的精华主题

TA的得分主题

发表于 2010-7-28 23:34 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 梁山渔民 于 2009-3-3 20:41 发表



请问这个与=RAND()*0.04  有什么不同呢?

=RAND()*0.04的取值在 0到0.4之间的数;
=RAND()*0.08-0.04的取值在 -0.4到0.4之间的数;

TA的精华主题

TA的得分主题

发表于 2010-7-28 23:37 | 显示全部楼层
原帖由 chujund 于 2009-3-3 20:18 发表
可以这样=RAND()*0.04-0.04

=RAND()*0.04-0.04的取值在-0.04到0之间,与题目不符!

TA的精华主题

TA的得分主题

发表于 2010-7-29 07:34 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 灰袍法师 于 2009-3-3 17:28 发表


这个做法是错误的, 这等于说 rand()-rand() 可以生成均匀的 -1到1的随机数
假设我要得到 >0.5 的概率, 显然此概率应该是 25%

rand() - rand() 的概率是
第一个rand() 必须在0.5到1, 即0.75加减0.25 之间,  ...


某一范围的随机数的正确方法, 就是

rand()  *  ( 上限 - 下限 ) + 下限  (上限,下限可以是任意实数, 上限大于下限)
去验证一下,先谢过了

[ 本帖最后由 wuhanhan 于 2010-7-29 07:37 编辑 ]

TA的精华主题

TA的得分主题

发表于 2010-7-29 06:55 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-12-14 06:38 , Processed in 0.023407 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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