全国服务热线:400-6263-721

位置:重庆少儿编程培训学校 > 学校动态 > 核酸检测中的逻辑和位运算

核酸检测中的逻辑和位运算

来源:重庆少儿编程培训学校时间:2023/1/2 10:49:04

  较近这段时间,都算是严阵以待。

  现在的核酸检测已经从单独检测变成了10混1的混合检测。能更加适合在大规模人群中尽可能地筛查出感染人员。

  也就是说一旦检测出阳性,则立马对这十人进行单独隔离和检测。

  如果老师用计算机的角度去看待这个问题,将情况换做真假值(True of False)与逻辑运算,令阳性为T,阴性为F,则较终的核酸检测结果是10个TF或起来的结果——只要任意一人出现T,则真就判定结果就是T。

  所以今天就来讲一讲计算机的逻辑运算。

  计算机的逻辑运算

  主要有三类:&&(且),||(或),!(非)

  与生活中的描述基本一致,且则表明需要同时满足:例如外面天气没下雨且操场开放且我没生病,我就出去跑步。否则我就在家休息。


核酸检测中的逻辑和位运算


  而或表明只需要满足其中之一即可。外面天气下雨或者操场不开放或者我生病了,我就在家休息。否则就出门跑步。


核酸检测中的逻辑和位运算


  而非则表示下面的内容全部取反,真变假,假变真。其实很明显看到,小毕老师我刚刚举的两个跑步的例子就是if的内部是完全相反的,实际上就是一个取反过程,也就说:


核酸检测中的逻辑和位运算


  当然。我们知道目前来说,计算机的真假值可以以0和1来表示。所以也就是一个个的0和1进行了且或非的运算。

  实际上计算机还有一个更加类似,但是又有些许不一样的运算。专门处理一连串的01的运算方式。叫做位运算。

  计算机的位运算

  当然首先我们要明白一点,一连串的01是什么。

  例如0101,本质上来说,我们认为是一个数字的二进制表示,也就是这个数字本身是十进制下的5。(如果对进制转换有疑惑的可以查看以前的文章)

  那么位运算的本质,实际上是一连串01,然后按照每一位做且或非的运算。

  位运算下的且是&,或是|,非是~。

  例如0101 & 1011:


核酸检测中的逻辑和位运算


  每一位做类似的逻辑运算且即可。相应的或与非也是类似,都是对于每一位的操作,所以叫位运算。


核酸检测中的逻辑和位运算


  接下来我们再来介绍一个位运算,也是今天的重点。

  计算机的位运算——异或

  异或运算,操作符为:^。

  异或简单描述为,相同为0,相异为1。

  (注意位运算,是每一位互相运算)


核酸检测中的逻辑和位运算


  那异或有什么用呢?我们可以来看下面这个式子:


核酸检测中的逻辑和位运算


  也就是说,两个相同的数字,异或的结果为0。

  然后我们再看一下与0异或的结果。


核酸检测中的逻辑和位运算


  因为1与0异或结果为1,0与0异或结果为0。那么,任何数字x与0异或都是x它本身ok,现在小毕老师便提出一个问题。

  问题——公寓筛查

  公寓核酸检测,每次登记检测用户的房间号,总共有n个人,故一次核酸检测会登记n个房间号。第二轮核酸检测后发现只检测了n-1名住户,现只知道前两轮的登记情况,问谁未做核酸检测。

  简单描述一下,现在有2*n-1个数字,其中有n-1个数字出现了2次,有1个数字只出现了1次,找出只出现了一次的数字。

  解决

  实际上这是异或的经典问题。因为除了目标数字之外,其他数字都只出现了2次。而出现两次的数字异或结果为0,0异或其他数值均为其他值。所以把所有数字异或后的结果,即为只出现了一次的数字。

  这边可以类比成两个相同的数字在异或下就等价于加法下的相反数,一操作就抵消了。所以较后剩下的数字就是只出现了一次的数字。

  代码


核酸检测中的逻辑和位运算
领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/168/news/588815/违者必究! 以上就是重庆少儿编程培训学校 小编为您整理 核酸检测中的逻辑和位运算的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-6263-721