surepj 发表于 2021-12-6 19:51

【Python】-初学笔记-这题如果没有电脑程序,怎么求?

题目是这样的:
有一物,不知其数,三三数之余二,五五数之余三,七七数之余二,问物几何?

先随便设定个范围,电脑程序求起来比较简单:
for i in range(1,100):
    if i % 3 ==2 and i % 5 == 3 and i % 7 == 2:
      print(f'这个数是:{i}')

电脑就相当一个个数去试,那么,如果没有电脑程序,现实中这样的题目如何求答案呢?

zqc8 发表于 2021-12-6 20:03

数学?一个普通的程序靠暴力,一个高效的程序靠算法。

GeorgeAlone233 发表于 2021-12-6 20:07

列方程求解呗 还能咋算   这不是初中数学吗

smldhz 发表于 2021-12-6 20:14

3和7都余2那么只要找3和7的公倍数 从最小的开始 也就是21 因为余2 所以加上2等于23 23除以5 余数正好是3所以答案就是23

surepj 发表于 2021-12-6 20:15

GeorgeAlone233 发表于 2021-12-6 20:07
列方程求解呗 还能咋算   这不是初中数学吗

3x+2=5y+3=7z+2,这样列方程能求出来吗?

还请指教方程式和求解过程。

surepj 发表于 2021-12-6 20:23

smldhz 发表于 2021-12-6 20:14
3和7都余2那么只要找3和7的公倍数 从最小的开始 也就是21 因为余2 所以加上2等于23 23除以5 余数正好是3...

是啊。
但要是,15个一数余11,13个一数余9,问物几何?
如何算呢:Dweeqw

ynboyinkm 发表于 2021-12-6 20:29

smldhz 发表于 2021-12-6 20:14
3和7都余2那么只要找3和7的公倍数 从最小的开始 也就是21 因为余2 所以加上2等于23 23除以5 余数正好是3...

这个是高智商{:1_921:}

zhmyi000 发表于 2021-12-6 20:40

分析规律:
1、被5除3,说明这些数尾数为3和8
2、被3和7除余2,那么这些数减2后(减后尾数为1和6)能被3和7整除,最小的就是3*7=21,
3、所以这些数减2后是21的倍数,并且尾数是1和6
4、21的整数倍(设倍数为n),尾数是1和6,n的尾数也必须是1和6,n可以取1、6、11、16、21、26...
5、最终结果为21*n+2=23、128、233、338、443...

阳光肥肥 发表于 2021-12-6 20:42

需要一定的数论知识,
可以查孙子定理或者中国剩余定理

0052Hz 发表于 2021-12-6 20:52

surepj 发表于 2021-12-6 20:15
3x+2=5y+3=7z+2,这样列方程能求出来吗?

还请指教方程式和求解过程。

要把一个未知数看成常数,比如把z看成常数,解x和y,得x=7/3*z,y=(7z-1)/5,求出所有使x和y同时为整数的整数z,对应的xyz就是方程的解,实际上是一个集合
页: [1] 2
查看完整版本: 【Python】-初学笔记-这题如果没有电脑程序,怎么求?