首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

一道有趣的概率算法题! 欢迎大家前来讨论解决思路

2014-05-26 
一道有趣的概率算法题! 欢迎大家前来讨论有一初始数组A 并选择随机的优先级P 这样

一道有趣的概率算法题! 欢迎大家前来讨论
有一初始数组A= <1,2,3,4>   并选择随机的优先级P= <36,3,97,19>   这样得出数组B= <2,4,1,3>     因为第2个优先级最小,接着是第4个,然后是第1个,最后是第3个.

现假设是从1到n^3之间的随机数.在此范围内是为了让P的所有优先级尽可能唯一.   那么使所有元素都唯一的概率是多少?                                    


                                                                                                                请各位写出解答过程
                                                                                                                感谢各位的参加


[解决办法]
令 N=n^3 (仅为书字方便)
即P中的元素为1至N之间的随机数
我们使用f(x)表示P中有x个元素时, 无重复元素的概率
则: f(1) = 1 = N/N
f(x+1) = f(x) * (N-x) / N
增加每x+1个元数时, 此元互与前面x个元素不重复的概率为 (N-x)/N
很容易推出 f(n) = N!/((N-n)! * N^n)


[解决办法]
ls正解,生日悖论就是这么推导的;

我觉得也可以这么理解:

所有N个数可重复取的排列总数为 N^n;

所有N个数不可重复取的排列总数为 N!/(N-n)!

所以概率为:
N!/(N-n)! / N^n
==N!/((N-n)! * N^n)

热点排行