转:min(x,y)高效算法

命题:给定整数x,y,计算较小值m。
     两个数的差异,在于他们的差,于是想到计算z = x - y,我想也许可以利用这个中间值,利用一些巧妙的位运算求出,可是貌似还是比较困难。于是我打算重新理一下思路:
可能出现的情况:(暂时忽略特殊情况 z = 0)
1. x < y
    z < 0
    就是要找到一个函数f,满足f(y , z) = x
2. x > y
    z > 0
    就需要这个f不仅满足1,而且满足此时f(y , z) = y

    因为算法的目的是使用加减法、位运算这些基本运算,尽可能简单的计算。所以我选择了加法运算
    y + g(z) = x , z = x - y < 0;
    y + g(z) = y , z = x - y > 0;
    最终变成寻求一元函数g
    就是
    g(z) = z, z < 0
    g(z) = 0, z > 0
    也就是要找到一个一元分段函数,而且需要运算简单,于是我想到了g(z) = (z >> 32) & z
    如果z < 0,z>>32得到的是FFFFFFFF,再与上一个z,还是z,
    如果z > 0,  z>>32得到的是0000000,最终还是0
    所以最终的算法是
    z = x - y
    m = (z >> 32) & z + y;
    这个算法应该跟当初看到的比较接近了。它的优点很显然,全部是最基本的运算,而且不包含控制指令,而且完全可以直接由寄存器计算完成,效率很高。
    
    算法本身并非什么惊天地泣鬼神大算法,而且在编译器里肯定会有自己做这样的优化,其实最让我欣慰的是我这次的思路,思路非常清晰,很久没有动脑子的我,居然还能这么思考,我已经很高兴了。其中主要包含两种思想:分类讨论、降低元数(降二元为一元)。这也是使用非常广泛的方法了,前者主要帮助理清思路,后者主要降低复杂度。

转载于:https://www.cnblogs.com/xinzhuangzi/archive/2011/08/23/4100430.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434918.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

系统运维安全管理办法_运维安全管理系统-堡垒机

随着信息化的快速发展与普及&#xff0c;业务运行已于信息化系统密不可分&#xff0c;由于业务需求的不断拓展&#xff0c;信息化系统的建设也在不断深入与增长&#xff0c;企业的业务系统变得日益复杂&#xff0c;信息化系统俨然已经成为了业务运行保障的重中之重&#xff0c;…

asp.net 下载文件

//源文件名称 //提供下载的文件&#xff0c;不编码的话文件名会乱码 //private string fileName HttpContext.Current.Server.UrlEncode("规范.rar"); string fileName "D:\我的文档\Visual Studio 2010\WebSites\WebSite14\a00.zip"; …

SIP代理服务器(1)

SIP代理服务器分两种&#xff1a; 1&#xff09;无状态代理服务器&#xff1a;简单的转发功能&#xff0c;通过请求信息来选择转发的目的和路由。消息一旦转发立即丢弃。 2&#xff09;有状态代理服务器&#xff1a;记录到来的请求和发送的请求的信息&#xff08;特别是事务状态…

arcgis坡度结果有误或z因子前有感叹号

在地理坐标系下我们做坡度的时候arcgis的z因子会出现感叹号 这样作出的效果如下 通常这样的效果是错误的 解决方法&#xff1a; 原理&#xff1a;应为在地理坐标系下xy的单位是度或者十进制的&#xff0c;就导致z与xy的测量单位不同&#xff0c;所有我们就需将DEM数据投影到投…

怎么修改提交git是的用户名_Git 修改用户名以及提交邮箱

问题背景&#xff1a;在已毕业师兄的电脑上提交自己的 Github 代码&#xff0c;(尽管有重新设置了 自己的SSH)&#xff0c;但是 Github网站提交结果却显示师兄提交的&#xff1a;验证当前本地属性&#xff1a;怎么知道本地有设置&#xff1f;git config --local --list 看一眼。…

企业效益真的向好么?

根据最新消息&#xff0c;1至7月&#xff0c;全国公共财政收入66739.92亿元&#xff0c;同比增长30.5%。全国公共财政支出51385.06亿元&#xff0c;同比增长29.7%。财政部部长谢旭人昨日表示&#xff0c;财政收入增长较快&#xff0c;是经济运行总体良好及企业效益提高的综合反…

基于集成提升和 Bagging 的地下水潜力预测机器学习模型文件阅读

文章连接:Ensemble Boosting and Bagging Based Machine Learning Models for Groundwater Potential Prediction | SpringerLinkhttps://link.springer.com/article/10.1007/s11269-020-02704-3 一、研究区: Dezekord-Kamfiruz 流域是伊朗法尔斯省的一部分 二、方法:

SIP代理服务器(2)

4请求转发 对于上一步确定的每一个目的地&#xff0c;proxy转发请求都遵循下列步骤&#xff1a; 1&#xff09;、 拷贝一个接收到的请求 2&#xff09;、 更新Request-URI 3&#xff09;、 更新Max-Forwards头域 4&#xff09;、 可选增加一个Record-Route头域 5&#xff09;、…

sklearn svm 调参_SVM(Support Vector Machine)

SVM是一种二元分类模型(当然它也可以处理回归问题)&#xff0c;它通过训练样本寻找分隔两类样本的最优决策边界(超平面)&#xff0c;使得两类样本距离决策边界的距离最远(例如H3)。其中距离决策边界最近的样本称为支持向量(即深色的苹果和香蕉)&#xff0c;支持向量所在的与决策…

SAGA-GIS软件下载

官网&#xff1a; SAGA - System for Automated Geoscientific Analyseshttps://saga-gis.sourceforge.io/en/index.html点击下载按钮 点击后等几秒即可下载 下载时间过长 下载完解压即可使用

SIP路由

本文主要讨论的是跟SIP消息发送的路由选择和相关头域。SIP消息传输路径依靠的是路由集和目标地址&#xff08;remotetargetURI&#xff09;。主要参考的是RFC中的第八章&#xff08;一般用户代理行为&#xff09;、第十二章&#xff08;对话&#xff09;、第十三四章&#xff0…

MVC 入门之V

1&#xff0c;登录页面 <% page language"java" import"java.util.*" pageEncoding"gbk" errorPage"error.jsp"%> <% String path request.getContextPath(); String basePath request.getScheme()"://"request.…

使用优化的基于模糊规则的特征选择技术和基于树的集成方法进行山洪敏感性建模--文献阅读

文章连接 Flash flood susceptibility modeling using an optimized fuzzy rule based feature selection technique and tree based ensemble methods - ScienceDirecthttps://www.sciencedirect.com/science/article/pii/S0048969719309349?via%3Dihub#bb0310 解决问题 在…

python 曲面_Python之OpenGL笔记(35):曲面物体的构建

一、目的1、曲面物体的构建画球体&#xff1b;2、棋盘纹理着色器应用&#xff1b;二、程序运行结果棋盘纹理着色器应用三、曲面物体的构建基本原理吴亚峰《OpenGL ES 3.x游戏开发》(上卷)内容OpenGL 中任何形状的 3D 物体都是用三角形拼凑而成的&#xff0c;因此&#xff0c;构…

了解PRACK

概述SIP定义了两种应答&#xff1a;临时&#xff08;provisional)和最终&#xff08;final&#xff09;。最终应答传送的是请求处理的结果&#xff0c;是可靠性的&#xff08;reliably&#xff09;。而临时应答传送的是处理过程的信息&#xff0c;由RFC3261是非可靠的。但是由现…

Silverlight实例教程 - Out of Browser开篇

众所周知&#xff0c;学习一门IT技术&#xff0c;最关键的是实践&#xff0c;无论是软件开发还是网络调试&#xff0c;只要在真实环境下勤于动手和思考&#xff0c;很快就能掌握一门技术&#xff0c;Silverlight也不例外。为了帮助更多朋友快速学习掌握Silverlight应用开发&…

河流水质指标预测与不确定性分析:机器学习模型的比较研究--文献阅读

电导率 (EC)、氢气功率 (pH)、溶解氧 (DO)、总溶解固体 (TDS)、硫酸盐 (SO4)、镁 (Mg)、氯 (Cl)、总大肠菌群 (TC) 和生化需氧量 (BOD) DO、BOD、化学需氧量 (COD)、pH、硝酸盐 (NO3) 和悬浮固体 (SS)

python科学计算三剑客_1-python数据分析-数据分析介绍、数据分析三剑客之NumPy

数据分析三剑客numpypandas(重点)matplotlibnumpy模块NumPy(Numerical Python) 是 Python 语言中做科学计算的基础库。侧重在于数值计算&#xff0c;也是大部分Python科学计算库的基础&#xff0c;多用于在大型、多维数组上执行的数值运算。重点numpy数组的创建numpy索引和切片…

SIP可靠性(SIP Reliability)

根据RFC3261&#xff0c;SIPUA必须支持TCP及UDP底层传输协议。这两种方式除了使用方式不一样之外&#xff0c;对SIP协议自身的影响主要体现在可靠性处理上。 SIP可靠性机制主要是为了支持不可靠传输层协议&#xff0c;如UDP。当SIP使用的传输层协议为TCP或TLS时&#xff0c;这种…

可以无限增加iPhone 的图标吗?

可以无限增加iPhone 的图标吗?iPhone屏幕上每个图标都对应一个应用程序&#xff0c;目前苹果商店中应用程序数量已经超过40万个&#xff0c;我们又能在手机里放多少呢&#xff1f;有人可能会说那要取决于iPhone的存储容量有多大&#xff0c;确实如此&#xff0c;那么如果假设空…