公式P是指排列,从N个元素取R个进行排列(即排序)。 (P是旧用法,现在教材上多用A,Arrangement)

公式C是指组合,从N个元素取R个,不进行排列(即不排序)。

组合数的奇偶性判定方法为:

结论:

对于C(n,k),若n&k == k 则c(n,k)为奇数,否则为偶数。

证明:

利用数学归纳法:

由C(n,k) = C(n,k-1) + C(n-1,k-1);

对应于杨辉三角:

1

1 2 1

1 3 3 1

1 4 6 4 1

………………

可以验证前面几层及k = 0时满足结论,下面证明在C(n-1,k)和C(n-1,k-1) (k > 0) 满足结论的情况下,

C(n,k)满足结论。

1).假设C(n-1,k)和C(n-1,k-1)为奇数:

则有:(n-1)&k == k;

(n-1)&(k-1) == k-1;

由于k和k-1的最后一位(在这里的位指的是二进制的位,下同)必然是不同的,所以n-1的最后一位必然是1

现假设n&k == k。

则同样因为n-1和n的最后一位不同推出k的最后一位是1。

因为n-1的最后一位是1,则n的最后一位是0,所以n&k != k,与假设矛盾。

所以得n&k != k。

2).假设C(n-1,k)和C(n-1,k-1)为偶数:

则有:(n-1)&k != k;

(n-1)&(k-1) != k-1;

现假设n&k == k.

则对于k最后一位为1的情况:

此时n最后一位也为1,所以有(n-1)&(k-1) == k-1,与假设矛盾。

而对于k最后一位为0的情况:

则k的末尾必有一部分形如:10; 代表任意个0。

相应的,n对应的部分为: 1{*}*; *代表0或1。

而若n对应的{*}*中只要有一个为1,则(n-1)&k == k成立,所以n对应部分也应该是10。

则相应的,k-1和n-1的末尾部分均为01,所以(n-1)&(k-1) == k-1 成立,与假设矛盾。

所以得n&k != k。

由1)和2)得出当C(n,k)是偶数时,n&k != k。

3).假设C(n-1,k)为奇数而C(n-1,k-1)为偶数:

则有:(n-1)&k == k;

(n-1)&(k-1) != k-1;

显然,k的最后一位只能是0,否则由(n-1)&k == k即可推出(n-1)&(k-1) == k-1。

所以k的末尾必有一部分形如:10;

相应的,n-1的对应部分为: 1{*}*;

相应的,k-1的对应部分为: 01;

则若要使得(n-1)&(k-1) != k-1 则要求n-1对应的{*}*中至少有一个是0.

所以n的对应部分也就为 : 1{*}*; (不会因为进位变1为0)

所以 n&k = k。

4).假设C(n-1,k)为偶数而C(n-1,k-1)为奇数:

则有:(n-1)&k != k;

(n-1)&(k-1) == k-1;

分两种情况:

当k-1的最后一位为0时:

则k-1的末尾必有一部分形如: 10;

相应的,k的对应部分为 : 11;

相应的,n-1的对应部分为 : 1{*}0; (若为1{*}1,则(n-1)&k == k)

相应的,n的对应部分为 : 1{*}1;

所以n&k = k。

当k-1的最后一位为1时:

则k-1的末尾必有一部分形如: 01; (前面的0可以是附加上去的)

相应的,k的对应部分为 : 10;

相应的,n-1的对应部分为 : 01; (若为11,则(n-1)&k == k)

相应的,n的对应部分为 : 10;

所以n&k = k。

由3),4)得出当C(n,k)为奇数时,n&k = k。

综上,结论得证!

c语言位运算 判断一个数的奇偶性,组合数奇偶性判断 应用位运算方法相关推荐

  1. python 如何判断一个数为整数?(判断整数,没有小数)(取余)判断整型 isinstance()

    方法1 判断是否为整数(即使不为整型) # -*- coding: utf-8 -*- """ @File : test.py @Time : 2020/6/25 11: ...

  2. C语言(CED)判断一个数是否是2的整数幂的简便方法!

    正如大家所熟知的那样,我们输入到计算机中的数据,都是以二进制的格式保存处理的,所以此方法就是利用这一特点来进行判别!(除2的零次方) 将2的整数幂次方转换为二进制后,仔细观察后会很容易发现一个特点:整 ...

  3. 在标准c语言中 =是判断两个数是否相等,='运算符用于判断两个数是否相等。

    "始于事亲",运算于判是指从小就要尊敬和孝顺自己的父母双亲,以及关爱与自己有血缘关系的兄弟姐妹等亲人,这是一个人行孝的开始阶段. 符用空巢老人生活特点( ). 断两老人常见的情绪反 ...

  4. C语言题目:输入一个数,将它的每一位按顺序打印出来

    完成这个题目,首先想想该怎么去做. 我们知道一个数对10取余可以得到个位,除以十可以去掉个位,获得十位以上的数字 比如 12%10=2 12/10 = 1 所以我们可以根据这个方法写出这个程序,但是我 ...

  5. 【javascript输入一个数判断这个数是否为素数】判断素数

    判断素数 什么是素数:素数是指质数,一个大于1的自然数,除了1和它自身外,不能整除其他自然数的数叫做质数:否则称为合数.所以我们可以利用这个性质来判断这个数是否为素数. 基本代码: css部分: .b ...

  6. 判断三个数是否构成三角形并判断三角形类型

    上机题一 题目: 从键盘上输入三个数,判断能否构成三角形,如不能,给出提示:如能,求出对应三角形的面积,并判断该三角形是锐角三角形还是钝角三角形还是直角三角形,输出对应结论. #include< ...

  7. 如何通过三视图判断立方体个数_由三视图comma;判断小正方体个数

    由三视图, 判断小正方体个数问题 通过小正方体组合图形的三视图,确定组合图形中小正方体的个数,在中考或竞赛中经常会遇到.解决这类问题如果没有掌握正确的方法,仅仅依赖空间想象去解决,不仅思维难度很大,还 ...

  8. python怎么判断一个数是不是正整数_Python如何判断一个正整数是否是素数?

    素数(Prime Number),又称质数,一个大于1的自然数,除了1和它自身外,不能整除其他自然数的数叫做质数:否则,称为合数(Composite Number).1既不是素数,也不是合数. 如2. ...

  9. 如何通过三视图判断立方体个数_如何通过接触角判断疏水性?疏水性与亲水性的区别...

    本期关注: 如何通过接触角判断疏水性?疏水性与亲水性的区别 一般涂层的疏水性主要是靠接触角和吸水率来判断的吧,想问下这两者之间的关系比如说系列样品中,接触角最大的吸水率一定最小吗? 下图是通过测试的亲 ...

最新文章

  1. 漫画 | 小公司卧薪尝胆三年,意外拿到美团offer
  2. Android多媒体分析-通过MediaStore获取Audio信息
  3. WCF布署问题 :HTTP 错误 404.17 - Not Found 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。...
  4. A Complete Tutorial on Tree Based Modeling from Scratch (in R Python)
  5. 信息系统项目管理师:第5章:项目范围管理- 章节真题+解析
  6. SAP UI5 responsiveLayout和responsiveGridLayout的区别
  7. 疯子的算法总结(六) 简单排序总 选择排序+插入排序+比较排序+冒泡排序
  8. halcon reduce_ocr_class_svm 缩减基于SVM的OCR分类器。
  9. node.js 中间件_Node.js中的Passport中间件(模块)
  10. cachestat、cachetop、pcstat-linux系统缓存命中率分析工具
  11. 解决在微信下载app需要点击右上角在浏览器中打开下载的问题
  12. [转] Web前端开发工程师常用技术网站整理
  13. PPT中插入Flash
  14. HDMI设计9--Video Mixer IP
  15. PuTTY 提示error错误 no supported authentication methods available (server sent: publickey)
  16. ブランドは、同社とその製品、サービス
  17. 全面的平板--Surface(各版本对比)
  18. python京东抢购软件_[Python] 京东秒杀商品抢购-茅台抢购自动获取抢购时间【修改】...
  19. VR虚拟现实技术类毕业论文文献都有哪些?
  20. 手把手带你写一个中断输入设备驱动~

热门文章

  1. LS产电GMC交流接触器
  2. 怎么把计算机原有用户数据删除,电脑怎么清除数据
  3. RZ/G2L核心板功耗测试
  4. 孙子问题(同余定理)
  5. ESP8266WiFiGeneric---通用库--事件和配置
  6. Array.prototype.reduce用法
  7. 特斯拉 开源_特斯拉开源其安全软件,好莱坞开源,更多新闻
  8. 特斯拉再次领先,公布了一系列自动驾驶数据
  9. 基于DELF(DEep Local Features)深度局部特征的图像检索实践
  10. 公务员考试计算机基础试题,2019年国家公务员考试计算机基础试题6