算法导论 5.3-4
来源:互联网 发布:c语言编程图书管理系统 编辑:程序博客网 时间:2024/05/22 14:01
1 问题
Armstrong教授建议使用下列过程来产生均匀随机排列:PERMUTE-BY-CYCLIC(A)1 n <- length[A]2 offset <- RANDOM(1,n)3 for i <- 1 to n4 do dest <- i + offset5 if dest > n6 then dest <- dest - n7 B[dest] <- A[i]8 return B证明任意元素A[i]出现在B中任何特定位置的概率都是1/n。然后通过证明其结果不是均匀随机排列来表明Armstrong教授错了。
2 分析与解答
这段代码得到的数组B实际是将A随机循环右移n位,显然是不能得到A的所有排列的,所以不是均匀随机排列。
由于P{offset=j,j=1,2,3,..n}=1/n,所以对于A中某一位置i的元素A[i]来说,i+offset为1到n中任意数的概率也是1/n,所以任意元素A[i]出现在B中任何位置的概率都是1/n。
0 0
- 算法导论 5.3-4
- 算法导论 练习题 5.3-4
- 算法导论 练习题 5.3-4
- 算法导论 5.3-1
- 算法导论 5.3-2
- 算法导论 5.3-3
- 算法导论 5.3-3
- 算法导论 5.3-5
- 算法导论 5.3-6
- 算法导论 4-4
- 算法导论14.3-4
- 算法导论15.4-4
- 算法导论11.1-4
- 算法导论 1.1-4
- 算法导论 2.1-4
- 算法导论 2.3-4
- 算法导论 2-4
- 算法导论11.1-4
- [Asp.Net MVC4]验证用户登录实现 .
- MySQL学习笔记_1_MySQL数据库管理系统概述
- logistics-3-staff management
- 指针函数小练习
- 两张图让你搞清楚Oracle 数据库的 union all、union、intersect、minus以及各种sql joins
- 算法导论 5.3-4
- logistics-4-region management
- 10.拦截器
- 大数据与企业的数据化运营
- logistics-5-subarea management
- Java 中的悲观锁和乐观锁的实现
- 1-byte array(byte[], boolean[])图片导致的内存过大
- logistics-6-decidedZone management
- hive第一篇----简介和使用客户端