社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

表弟的数学题,我竟然用了Python才解出来

CDA数据分析师 • 5 年前 • 457 次点击  

作者:朱小五 

本文转自:凹凸玩数据


大家好,我是朱小五


本来这个周末过得开开心心,结果为了解一道数学题薅掉了一把头发、、、整整18根!


而且还是一道小学数学题!!!


到底是什么题呢?大家看看吧



既然表弟都求到我这了,那就随便的做一做嘛。


这不就是一道逻辑题嘛!


先假如丁错,则甲乙丙对,此时最小的abc=(2^3)*(3^2)*7=504>500,不在题干范围之内。


那么也就是丁必对,甲乙丙中有一错。


等一下


然后嘞?


并不能判断甲乙丙哪个错啊!!!


难道要先假设甲乙丙中一个是错误,然后挨个穷举看哪个三位数满足丁(各个数字之和是15)的条件吗?


表弟啊,你才上五年级!你确定不是你们老师留错题了吗?



行吧行吧


既然要穷举还不如用python!


嘿嘿嘿,循环+判断走起


for a in range(15):
    for b in range(09):
        for c in range(09):

            abc = a * 100 + b * 10 + c

            T1 = abc % 8 == 0 # 甲:abc可以被2整除3次
            T2 = abc % 9 == 0 # 乙:abc可以被3整除2次
            T3 = abc % 7  == 0 # 丙:abc可以被7整除
            T4 = a + b + c == 15 # 丁:abc的各个数字之和是15

            if T1 is True and T2 is True and T3 is True#假设丁说谎, 甲乙丙的条件成立
                print('丁说谎,abc=%s' % abc)
            elif T1 is True and T2 is True and T4 is True#假设丙说谎, 甲乙丁的条件成立
                print('丙说谎,abc=%s' % abc)
            elif T1 is True and T3 is True and  T4 is True#假设乙说谎, 甲丙丁的条件成立
                print('乙说谎,abc=%s' % abc)
            elif T2 is True and T3 is True and T4 is True#假设甲说谎, 乙丙丁的条件成立
                print('甲说谎,abc=%s' % abc)

成功得到答案:


把答案交给表弟,结果他告诉我光知道答案没用啊


总不能跟老师讲是用python遍历的吧。


行吧,这道逻辑题还是必须用逻辑解出来啊,


不然过年回家的时候,怎么好意思求表弟王者荣耀带我上钻石?

我们再来总结一下题干中能够提取的信息:


按照甲的说法,abc能被2^3=8整除。

按照乙的说法,abc能被3^2=9整除。

按照丙的说法,abc能被7整除。

按照丁的说法,abc相加为15


陷入沉思


经过一(绞)番(尽)回(脑)忆(汁)后,终于想起了小学时候学的整除的特性:


被3整除:数字之和能被3整除(逢3必消)

被9整除:数字之和能被9整除(逢9必消)


根据这些特性,我一直忽略了丁的说法中还有隐藏条件:abc能被3整除,不能被9整除


这样一来,乙与丁的说法就是矛盾的。


上文我也说到了,假如丁错,则甲乙丙对,此时最小的abc=(2^3)*(3^2)*7=504>500,不在题干范围之内。


所以乙错了,甲丙丁是对的,此时abc能被8(甲)、7(丙)、3(丁)整除,则abc是8*7*3=168的倍数。小于500的168的倍数有168、336,只有1+6+8=15。


故abc = 168。



今年王者荣耀上钻石有望了~




📌CDA课程咨询

赵老师

微信号 : CDA11111111

联系电话:13381275813

长按二维码,添加好友咨询


⭐️为CDA数据分析师点亮星标⭐️






📚推荐阅读 READ MORE


 干货 | 如何用Python开启你的机器学习之路

  【神预测】数据分析精准预测2019天猫双11成交额! 误差仅仅千分一!

  今年双11,你盖楼了吗? | 用数据解读不一样的双11

●  实锤!中国自己的数字货币DCEP!拥有法币地位,任何机构和个人不得拒绝,没网的地方也能用!央行DCEP,全球第一大主权数字货币!



喜欢本篇内容请点个“在看”哦!❤️


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/51701
 
457 次点击