女护士

问题

“医院里的医务人员,包括我在内,总共是16名医生和护士。下面讲到
的人员情况,无论是否把我计算在内,都不会有任何变化。在这些医务人员
中:
(1)护士多于医生。
(2)男医生多于男护士。
(3)男护士多于女护士。
(4)至少有一位女医生。”
这位说话的人是什么性别和职务?

分析

因为是小规模问题,适合用暴力破解法。枚举所有情况,找出符合规则的。此类问题都可以用这种方法。

代码

import  copy

satisfied_tuple
= []

for  male_doctor  in  range(0, 17 ):
    
for  male_nurse  in  range(0, 17 ):
        
for  female_nurse  in  range(0, 17 ):
            
for  female_doctor  in  range(0, 17 ):
                rule
= [(male_nurse + female_nurse) > (male_doctor + female_doctor)
                      ,male_doctor
> male_nurse
                      ,male_nurse
> female_nurse
                      ,female_doctor
>= 1
                      ,male_doctor
+ male_nurse + female_nurse + female_doctor == 16 ]
                result
= reduce( lambda  x,y:x  and  y,rule)
                
if  result:
                    satisfied_tuple.append([male_doctor,female_doctor,male_nurse,female_nurse])

roles
= [ ' male_doctor ' , ' female_doctor ' , ' male_nurse ' , ' female_nurse ' ]            

for  tuple  in  satisfied_tuple:
    
for  i  in  range(len(tuple)):
        new_tuple
= copy.copy(tuple)
        new_tuple[i]
-= 1
        male_doctor,female_doctor,male_nurse,female_nurse
= new_tuple
        new_rule
= [(male_nurse + female_nurse) > (male_doctor + female_doctor)
                      ,male_doctor
> male_nurse
                      ,male_nurse
> female_nurse
                      ,female_doctor
>= 1
                      
# ,male_doctor+male_nurse+female_nurse+female_doctor==16
                  ]
        result
= reduce( lambda  x,y:x  and  y,new_rule)
        
if  result:
            
print  roles[i]
    
结果

输出结果是: 女护士

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值