位操作在算法中的运用
位操作在算法中的运用
1. 与操作&
100 & 111 = 100
2. 或操作|
100 | 000 = 100
3. 异或^
100 ^ 000 = 100
4. 取反~
~100 = 011
5. 向左移位<<
1<<2 = 100
即2的2次方,等于4
6. 向右移位>>
16>>2 = 00100
即16的2的-2次方,等于4
note1:
移位和与操作结合,用来判断一个数的某一位是否为1,这个功能可以用在subset,即子集问题中。
例如:
判断数字8的第三位是否为1?
8&(1>>3)==1?
note2:
移位和或操作结合,用来将一个新的二进制位存储到一个整形数中,这个功能常用于优化内存,或者某些棋盘类型的问题中。
例如:将下面的棋盘保存为一个整形数
1 0
0 1
int a = 0;
a |=(number<<i)
note3:
移位和异或操作结合,用来将数字的某一位取反,用在棋盘类型的问题中。
例如:
1 0
0 1
转为1001
若对坐上角1取反,则结果应为1001^=(1<<3)
即
1001
^ 1000
=----------------
0001
转载于:https://www.cnblogs.com/xfei-zhang/p/5086898.html
位操作在算法中的运用相关推荐
- 在遗传算法中出现等式约束_排序算法中的稳定性-等式的处理
在遗传算法中出现等式约束 by Onel Harrison 通过Onel Harrison 排序算法中的稳定性-等式的处理 (Stability in Sorting Algorithms - A T ...
- 智能算法中终止条件: “最大评估次数” or “最大迭代次数”
使用 最大迭代次数依据: 智能算法既然是通过迭代,一步步的趋向最优解,那就应该在同样的代数下一代'进行对比 使用 评估次数依据: 一般 种群大小*迭代次数=评价次数.当种群大小一样时,可以使用迭代次 ...
- 2018/-4-11遗传,差分进化,免疫,蚁群算法中的公式
<智能优化算法以及matlab实现>包子阳中的智能算法公式 1.遗传算法中的轮盘赌公式 2.差分进化中的公式 (1)初始化 (2)变异 (3)交叉 自适应差分进化算法中的自适应变异算子: ...
- 一文讲解机器学习算法中的共线性问题
多重共线性是使用线性回归算法时经常要面对的一个问题.在其他算法中,例如决策树和贝叶斯,前者的建模过程是逐步递进,每次拆分只有一个变量参与,这种建模机制含有抗多重共线性干扰的功能:后者干脆假定变量之间是 ...
- 下面算法中,不属于公开密钥加密算法的是()。D
下面算法中,不属于公开密钥加密算法的是().D A.ECC B.DSA C.RSA D.DES 常用的公钥加密算法有RSA.DSA.ElGamal和ECC. 常用的对称加密算法有DES.3DES.ID ...
- 在决策树类相关算法中,一个接点的基尼系数通常是大于还是小于他的父节点?是总是大于还是总是小于?
在决策树类相关算法中,一个接点的基尼系数通常是大于还是小于他的父节点?是总是大于还是总是小于? 下图为笔者构建的树模型并可视化之后的效果图: 可视化决策树的代码如下: 具体细节可以参考: 构建决策树模 ...
- 什么是结构风险?在决策树类相关算法中通常有哪些正则化参数来控制模型的结构风险?解读一下
什么是结构风险?在决策树类相关算法中通常有哪些正则化参数来控制模型的结构风险?解读一下 什么是结构风险? 详细参考:结构风险和经验风险是什么?怎么去平衡它们? 当样本容量足够大时,经验风险最小化能够保 ...
- 一步一步写算法(之prim算法 中)
原文:一步一步写算法(之prim算法 中) [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] C)编写最小生成树,涉及创建.挑选和添加过程 MI ...
- python 回归去掉共线性_一文讲解机器学习算法中的共线性问题
多重共线性是使用线性回归算法时经常要面对的一个问题.在其他算法中,例如决策树和贝叶斯,前者的建模过程是逐步递进,每次拆分只有一个变量参与,这种建模机制含有抗多重共线性干扰的功能:后者干脆假定变量之间是 ...
最新文章
- linux kernel内存回收机制
- 服务端 I/O 性能大比拼:Node、PHP、Java、Go哪家强?
- 动态添加后的数据转换 — 后台接收数据
- 硬件知识:USB3.0和USB2.0的区别,看完你就懂了!
- Python在cmd中配置虚拟环境ERROR: Command errored out with exit status 1:
- docker 指定网卡_Docker | Docker技术基础梳理(五) Docker网络管理
- swift 2.2 语法 (上)
- springboot-2-ioc
- php mysql 继承,重用MySQL连接PHP对象继承
- SharePoint 2010的Form认证的用户注册功能
- mineData地图添加自定义Maker图标
- 19.(cesium之家)cesium接入加载3D城市建筑物(离线)
- WAP技术与网站建立(转)
- 【Netty】Netty+springboot实现IM即时通讯服务端
- CE进阶操作--自带小游戏TutorialGame的修改方法
- 基于spring boot的毕业设计论文选题申报管理系统
- markdown中编辑数学公式用到的技巧
- 十六进制转换十进制算法
- 《阿凡达》神树成真,科学家创造出可终生发光的植物
- 纯手写归纳hmm 模型
热门文章
- linux镜像文件不要大于4g,Systemback制作大于4G的Ubuntu系统镜像
- java求反字符_java 反取字符串
- html左侧td字体居右,如何在td中控制字体右对齐 且加粗_html/css_WEB-ITnose
- python 读取大文件_Python读取大文件
- hyperf自定义注解类_swoole学习六hyperf注解的使用
- nginx 配置静态文件目录_nginx配置静态资源服务器
- Winedit 快捷键概览
- AtCoder AGC031F Walk on Graph (图论、数论)
- 数码管时钟程序C语言00到99,[单片机]ACT89C51数码管时钟程序
- python系统字体_Python matplotlib修改默认字体的操作