ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创]产生不重复随机数的例子

[复制链接]

TA的精华主题

TA的得分主题

发表于 2003-11-24 20:43 | 显示全部楼层
好东西,送花一朵。 对不起了,我送了几次均不行。
[此贴子已经被作者于2003-11-24 20:44:28编辑过]

TA的精华主题

TA的得分主题

发表于 2003-11-25 15:56 | 显示全部楼层
陈老师太厉害了!建议斑竹置顶!

TA的精华主题

TA的得分主题

发表于 2003-12-11 19:45 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
好久没来,陈兄又上大餐了!谢谢!!谢谢!!! 顺问一下,你说:RAND函数生成的是15位小数的随机数,在100个中是不会重复的。 这15和100你确定吗?我查不到相关资料。 你的贴子贴贴精典!

TA的精华主题

TA的得分主题

 楼主| 发表于 2003-12-11 23:21 | 显示全部楼层
RAND函数生成15位的小数应该没有问题的,在100个中不重复那是概率的问题,你可计算一下,是不是与你连中2次彩票特等奖类视。
[此贴子已经被作者于2003-12-11 23:22:31编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2003-12-12 00:36 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
算我出的数学题目: 15位小数的每一个出现的概率为10E-15,100个随机的这样的小数中出现重复的概率为多少? 要说明计算方法及结果。
[此贴子已经被作者于2003-12-13 15:32:59编辑过]

TA的精华主题

TA的得分主题

发表于 2003-12-12 08:16 | 显示全部楼层
陈军终于肯当版主了,可喜可贺。不过这是啥时候的事?好久没来现在才注意到。好好好。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2003-12-12 21:39 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2003-12-13 16:21 | 显示全部楼层
15位的随机小数,如将0也考虑进去,有1E15个(实际应没有0的,为1E15-1个,为计算方便而且不影响结果的精度),每个出现的概率为1E-15,在100个中不重复的概率可这样计算: 第1个随便取; 第2个要与第1个不重复,就只能在剩下的1E15-1个中取,那么取第2个数的不重复概率为(1E15-1)/1E15; 第3个要与前2个不重复,就只能在剩下的1E15-2个中取,那么取第3个数的不重复概率为(1E15-2)/1E15; 依次类推,第100个数要与前99个不重复,就要在剩下的1E15-99个中取,那么取第100个数的不重复概率就为(1E15-99)/1E15; 因为每次取数是一个独立的事件,所以整个取数过程中没有重复的概率因将每个取数不重复概率相乘,即在1E15个数中随机取100个数没有重复的概率为 (1E15-1)/1E15*(1E15-2)/1E15*........*(1E15-99)/1E15 =0.999999999999999*0.999999999999998*......*0.999999999999901 将1减以这个值,就是取100个数可能出现重复的概率。 考虑到excel的单元格计算中有效位只有15位,为保证计算精度就不在单元格中计算; 看看VBA中有一个数据类型为Decimal,可有28位精度,但不能直接将变量定义为Decimal,只能通过CDec函数转换后赋值给Variant类型的变量,所以用以下一段VBA程序计算, Sub 概率计算() Dim total As Variant, i As Integer total = 1 For i = 1 To 99 total = CDec(CDec(1) - CDec(0.000000000000001 * i)) * CDec(total) Next i Debug.Print "不重复概率为" & CDbl(total), "出现重复概率为" & CDbl(1 - total) End Sub 运算以上程序即可在VBE的立即窗口中出现结果: 不重复概率为.99999999999505 出现重复概率为4.94999999998791E-12 当然用windows附件中的科学计算器也是可以计算的,只要你有耐心输入99个数。 如果你买一张6位数的彩票,中头等奖的概率为1E-6,买2次均中头等奖的概率为1E-12,以上算出的100个随机数有重复的概率是两次只买一张彩票两次均中头等奖的出现概率的5倍,所以我才说在100个随机数中不会出现重复。 如果哪位网友在我上面帖子的例子中出现了100个随机数中有重复的这样的运气,那么赶紧去买上几张彩票发财吧!!

TA的精华主题

TA的得分主题

发表于 2003-12-29 15:29 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
好多天没来,好东西太多了。兴奋!!!!

TA的精华主题

TA的得分主题

发表于 2004-3-12 08:20 | 显示全部楼层
也是不重复随机函数问题: 有200个考生, 打算用随机函数将考生先分为1-20个考场 再将每个考场的考生排成1-20个座次号 用随机函数如何处理
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-25 03:01 , Processed in 0.039173 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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