为了账号安全,请及时绑定邮箱和手机立即绑定

有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?

有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?

慕x3201745 2018-05-01 17:50:45
for num in range(6,58):    a = num >> 4 & 3    b = num >> 2 & 3    c = num & 3    if( (a^b) and (b^c) and (c^a) ):        print (a+1,b+1,c+1)有点看不懂,谁能给逐句解释下,感激不尽!!!为什么range(6,58),num >> 4 & 3,(a^b) and (b^c) and (c^a),t(a+1,b+1,c+1),有用到什么数学公式呢?
查看完整描述

2 回答

已采纳
?
狂飙的蜗牛_1

TA贡献96条经验 获得超43个赞

可以这样理解:

最小的数是123最大的数是432

二进制里面 :
00 01 10分别可以表示0 1 2
11 10 01分别可以表示3 2 1

合起来看 :
00 01 10是6
11 10 01是57

3的二进制表示是 :
11

如果两个数做异或运算等于0,例如 a^b 等于 0 ,则a和b一定相等;

程序的意思是: 
如果两两分割的这3组数,分别代表 百 、 十 、个,那么右移4位与3再加1得到百位,右移2位
与3再加1得到十位,右移0位与3再加1得到个位,其中要剔除重复的(用异或运算剔除);
查看完整回答
1 反对 回复 2018-05-01
点击展开后面1
?
pardon110

TA贡献1038条经验 获得超227个赞

位运算

查看完整回答
反对 回复 2018-05-01
  • 2 回答
  • 1 关注
  • 2327 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信