免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: void_while
打印 上一主题 下一主题

讨论下算法导论第5章一道概率题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-07-12 11:56 |只看该作者
原帖由 tyc611 于 2008-7-12 11:51 发表

我曾经和同学讨论过用random(0, 1)来产生目标数的二进制位,但问题在于,当目标数不是2^n时无法做到等概率


扩大范围,丢掉不合格的就可以了。

论坛徽章:
0
12 [报告]
发表于 2008-07-12 11:58 |只看该作者
比如一个机器,等概率吐出 1,2,3,4

如果把输出的 4 全丢掉,则 1,2,3 是等概率的。

论坛徽章:
0
13 [报告]
发表于 2008-07-12 12:01 |只看该作者
原帖由 win_hate 于 2008-7-12 11:58 发表
比如一个机器,等概率吐出 1,2,3,4

如果把输出的 4 全丢掉,则 1,2,3 是等概率的。

问题是去年不合格的后,需要重新产生,此时还会等概率吗?我再好好想想

论坛徽章:
0
14 [报告]
发表于 2008-07-12 12:09 |只看该作者
原帖由 win_hate 于 2008-7-12 11:58 发表
比如一个机器,等概率吐出 1,2,3,4

如果把输出的 4 全丢掉,则 1,2,3 是等概率的。

把合法子集和非法子集看作一个整体,这样看来确实是等概率的

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
15 [报告]
发表于 2008-07-12 22:14 |只看该作者
原帖由 win_hate 于 2008-7-12 11:36 发表


看不懂,后面累加的含义是什么?


累加是奇数的情况下的处理, 因为要估计到严格的概率相等, 偶数可以根据random(0, 1)返回值进入区间的前半部分或后半部分, 但如果区间不能均分, 则这个办法不能用, 否则不能保证严格的等概率。 所以只能使用多个random(0, 1)相加达到这个效果: 这个效率比较低, 所以在偶数区间的情况下, 就不会使用了

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
16 [报告]
发表于 2008-07-12 22:26 |只看该作者
原帖由 tyc611 于 2008-7-12 11:49 发表

1. 你的random(b)应该产生[0, b],因此,b % 2的判断是错误的(因为这里有b + 1个数)
2. 后面的循环产生的b + 1个数的每个数的概率是不均等的。举个简单的例子:产生0和b的概率为(1/2)^b,而不是期望的1/(b ...


第一个算是小问题, 只是个思路而已, 也没那么精确。
第二个问题我是我错了, 汗

[ 本帖最后由 zylthinking 于 2008-7-12 22:55 编辑 ]

论坛徽章:
0
17 [报告]
发表于 2008-07-12 22:43 |只看该作者
原帖由 zylthinking 于 2008-7-12 22:26 发表


第一个算是小问题, 只是个思路而已, 也没那么精确。
第二个问题我有点不理解, 产生0的可能性怎么就应该是(1/2)^b呢, 从[0, b]中产生一个任意数的概率应该就是 1/(b + 1), 相当于从b+1个鸡蛋里面随手挑 ...

你产生的数实质上是这种形式:n = n1 + n2 + .... + nb的形式,其中ni ={0, 1},概率分别为1/2
产生总的样本数为2^b;产生的数0只有一个样本(ni = 0 for all i form 1 to b),而产生的数1有b个样本(分别为ni = 1 when i = k, ni = 0 when i != k, where 1 <= k <= b),所以产生数0和1的概率是不相等的。其它数的概率类似。

[ 本帖最后由 tyc611 于 2008-7-12 22:47 编辑 ]

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
18 [报告]
发表于 2008-07-12 23:04 |只看该作者
原帖由 tyc611 于 2008-7-12 22:43 发表

你产生的数实质上是这种形式:n = n1 + n2 + .... + nb的形式,其中ni ={0, 1},概率分别为1/2
产生总的样本数为2^b;产生的数0只有一个样本(ni = 0 for all i form 1 to b),而产生的数1有b个样本(分别 ...


3x, 我理解了

论坛徽章:
0
19 [报告]
发表于 2008-07-13 09:47 |只看该作者
为什么不用浮点?

论坛徽章:
0
20 [报告]
发表于 2008-07-13 09:49 |只看该作者
丢弃是不行的,丢弃的情况下返回什么呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP