P628 排列与二进制
排列与二进制
题目描述
在组合数学中,我们学过排列数。从 个不同元素中取出 个元素的所有排列的个数,叫做从 中取 的排列数,记为 。
具体计算方法为 (规定 )。当 和 不是很小时,这个排列数是比较大的数值,比如 。
如果用二进制表示为 ,也就是说,最后面有 个零。我们的问题就是,给定一个排列数,算出其二进制表示的后面有多少个连续的零。
在组合数学中,我们学过排列数。从 n 个不同元素中取出 m(m≤n) 个元素的所有排列的个数,叫做从 n 中取 m 的排列数,记为 p(n,m)。
具体计算方法为 p(n,m)=n(n−1)(n−2)……(n−m+1)=n!/(n−m)! (规定 0!=1)。当 n 和 m 不是很小时,这个排列数是比较大的数值,比如 p(10,5)=30240。
如果用二进制表示为 p(10,5)=30240=(111011000100000)b,也就是说,最后面有 5 个零。我们的问题就是,给定一个排列数,算出其二进制表示的后面有多少个连续的零。