数学小技巧:判定奇偶的三种方法|Python代码示例

数学小技巧:判定奇偶的三种方法|Python代码示例

首页休闲益智独角兽数学更新时间:2024-07-19

关键字:奇数(odd number),偶数(even number)

问题:给定一个整数,判断奇偶。

第一种方法

小学数学老师教我们算法。取最后该数的末尾数,凡是为0,2,4,6,8者为偶,1,3,5,7,9为奇。例如,数13。末尾数为3,奇数。数250,末尾数为0,偶数。

用Python代码演示算法: def even(x): ''' 是否为偶数''' return int(str(x)[-1]) in [0,2,4,6,8] def odd(x): '''是否为奇数''' return int(str(x)[-1]) in [1,3,5,7, 9]

第二种方法

学过数的模运算,我们有了最直接的判定方法。设数为n, 凡是n除以2,余数为零,则为偶,余数为1者为奇。

def even(x): return x % 2 == 0 def odd(x): return x % 2 != 0

第三种方法

从电脑角度,以上两种算法还不是最高效的。我们来看最牛逼的算法。

数在电脑里是一串1和0组成的串串,用二进制表示。例如,13这个数,在电脑里其实为1101。250这个数,在电脑里是11111010。

判定数奇偶,取出它的二进制数串串的最右一位(也称为末尾数)。只有两种可能。要么为1,要么为0。为1该数为奇数,为0则数为偶数。

验证一下,13的二进制形式为1101,末尾数为1,则为奇。250的二进制形式为11111010,最后一位数为0,则为偶。

对于人类来说,第三种算法并不理想。毕竟人脑习惯使用十进制。将一个十进制数转换为二进制数,费事!

电脑则不同,二进制是它的母语。表达和运算全是从二进制走起。从二进制数串串里取出指定的位数,只需要一个位运算,与(&),即可。对于电脑来说,没有比这更高效了!

Python代码:

def even(x): return x & 1 == 0 def odd(x) return x & 1 == 1

总结,电脑的母语是0和1。在追求效率上,如果可能,直接操作二进制位获得结果,最为高效。

/* 全文结束 */


喜欢就点赞。 更多精彩,请关注我

今日头条号/西瓜视频/抖音:IT之州

* 本文为原创文章,引用或转载请获得作者正式授权,并注明出处。

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved