livcui 发表于 2021-2-8 15:52:25

一道初中数学题

题目(第二问):

实在解不出来

我的方法最后求出来44b - 11/68为整数
可惜不可能

原谅我只是个初一的

Daniel_Zhang 发表于 2021-2-8 15:52:26

livcui 发表于 2021-2-8 18:20
是a = 6?

对的,a = 6

55 * a = 40 * m + 10
30 * a = 40 * n + 20

a 时间

m n 甲乙的圈数

化简后:

11n = 6m - 4
得 n = 4 m = 8, 此时 a = 6 取到最小值

但是不清楚怎么计算 b{:10_257:}

Daniel_Zhang 发表于 2021-2-8 16:14:41

我不知道对不对哈

for i in range(1000):
    if ((i * 55 % 160 == 40) and (i * 30 % 160 == 80)):
      print(i)
      print("-----1-----")
    elif ((i * 55 % 160 == 80) and (i * 30 % 160 == 40)):
      print(i)
      print("-----2-----")
    elif ((i * 55 % 160 == 120) and (i * 30 % 160 == 0)):
      print(i)
      print("-----3-----")
    elif ((i * 55 % 160 == 0) and (i * 30 % 160 == 120)):
      print(i)
      print("-----4-----")

对角应该是有四种情况嘛, A B C D 四个点

但是不知道为啥程序跑出来,永远是 甲在 B 乙在D

第一次相遇应该是第 24 分钟的时候?相遇 8 次?甲跑了8圈,乙跑了4圈,地板除法的结果

所以 (24, 8)?

话说,寒假作业真的会有老师认真看吗{:10_245:}

wp231957 发表于 2021-2-8 16:31:35

本帖最后由 wp231957 于 2021-2-8 16:32 编辑

Daniel_Zhang 发表于 2021-2-8 16:14
我不知道对不对哈




作为初中题目,此题考虑的是用代数方法
或者方程方法,而不是计算机穷举

Daniel_Zhang 发表于 2021-2-8 16:57:53

本帖最后由 Daniel_Zhang 于 2021-2-8 16:59 编辑

wp231957 发表于 2021-2-8 16:31
作为初中题目,此题考虑的是用代数方法
或者方程方法,而不是计算机穷举

那就不用计算机穷举呗

55 * min = 160 * a + 40
30 * min = 160 * b + 80

min 就是多少分钟,a b 为甲乙的圈数

这是甲乙在 B D 两点上的情况的方程

化简得 11b = 6a - 4

只要获得第一次对角即可,就能得出 a b 的值,然后算出 min

另外三种对角情况存在 偶数或奇数 * 偶数 = 偶数或奇数 * 偶数 + 奇数 的情况,不需要化简也可以知道,偶数加奇数不可能是偶数,即不可能在另外三点互为对角

所以只有 甲在 B 乙在 D 这一种情况

第一次对顶是 24 分钟时,甲 8 圈 乙 4 圈,应该是遇见了 8 次

除此之外真想不出还有啥办法了{:10_245:}

Minecraft程序猿 发表于 2021-2-8 17:23:36

初一这么麻烦的吗{:10_250:},作为初三的很没面子

livcui 发表于 2021-2-8 17:27:03

Daniel_Zhang 发表于 2021-2-8 16:57
那就不用计算机穷举呗

55 * min = 160 * a + 40


#include <iostream>

int main() {

       

        for (int i = 1; i < 1000; i++) {

                if (55 * i % 40 == 0 and 30 * i % 40 == 30 or
                        55 * i % 40 == 20 and 30 * i % 40 == 10 or
                        55 * i % 40 == 10 and 30 * i % 40 == 20 or
                        55 * i % 40 == 30 and 30 * i % 40 == 0) {
                        int a = i;
                        int b = (a - 10 / (30 + 55)) / (40 / (30 + 55));
                        std::cout << a << b;
                        return 0;
                }
        }

        return 0;
}
我用我的方法试了试穷举,得a = 6, b = 13,甲在A,乙在C
我看了答案,也是这样
可以我的方法还是只能求出来:44b - 11/68为整数(这显然不可能)

我陷入了沉思{:10_245:}

Daniel_Zhang 发表于 2021-2-8 17:35:04

livcui 发表于 2021-2-8 17:27
我用我的方法试了试穷举,得a = 6, b = 13,甲在A,乙在C
我看了答案,也是这样
可以我的方法还是只 ...

你说的 a 和 b 是 题目中的 a 和 b 还是两个人走的圈数{:10_245:}

livcui 发表于 2021-2-8 17:42:35

Daniel_Zhang 发表于 2021-2-8 17:35
你说的 a 和 b 是 题目中的 a 和 b 还是两个人走的圈数

题目中的 a 和 b

Daniel_Zhang 发表于 2021-2-8 17:47:26

livcui 发表于 2021-2-8 17:42
题目中的 a 和 b

我吐血了,我以为边长 40 m{:10_285:}

Daniel_Zhang 发表于 2021-2-8 18:05:13

Peteryo01223 发表于 2021-2-8 17:58
条件:
甲55m/每分
乙30m/每分


你有尝试把数字带入题目吗

我没看错的话,输出结果里面最小的是 2

甲此时走到了 D,乙也是 D,如何互为相对的顶点{:10_257:}

livcui 发表于 2021-2-8 18:07:39

Peteryo01223 发表于 2021-2-8 17:58
条件:
甲55m/每分
乙30m/每分


不要穷举!不要穷举!不要穷举!

Daniel_Zhang 发表于 2021-2-8 18:19:27

真的,我只会用方程做第一题,得出 6

但是 13 到底该怎么算{:10_245:}

livcui 发表于 2021-2-8 18:20:48

Daniel_Zhang 发表于 2021-2-8 18:19
真的,我只会用方程做第一题,得出 6

但是 13 到底该怎么算

是a = 6?

livcui 发表于 2021-2-8 18:30:23

Daniel_Zhang 发表于 2021-2-8 18:26
对的,a = 6

55 * a = 40 * m + 10


b = (a - 10 / (30 + 55)) / (40 / (30 + 55))
30 + 55是速度和,10/(30 + 55)是第一次相遇的时间,(40 / (30 + 55))是第一次相遇后每次相遇的时间

livcui 发表于 2021-2-8 18:30:58

Daniel_Zhang 发表于 2021-2-8 18:26
对的,a = 6

55 * a = 40 * m + 10


我已经做出来了,最佳答案给你吧

Daniel_Zhang 发表于 2021-2-8 18:35:06

livcui 发表于 2021-2-8 18:30
我已经做出来了,最佳答案给你吧

谢谢,感觉我活了二十多岁,读的都忘光了{:10_277:}

wp231957 发表于 2021-2-8 18:36:44

Daniel_Zhang 发表于 2021-2-8 18:05
你有尝试把数字带入题目吗

我没看错的话,输出结果里面最小的是 2


甲走到a的同时乙走到c
或者甲走到c的同时乙走到a
或者甲走到b的同时乙走到d
或者甲走到d的同时乙走到b

Daniel_Zhang 发表于 2021-2-8 18:37:39

wp231957 发表于 2021-2-8 18:36
甲走到a的同时乙走到c
或者甲走到c的同时乙走到a
或者甲走到b的同时乙走到d


嗯呢,他改了回答,一开始不是那个答案,所以我会那么说{:10_248:}

Peteryo01223 发表于 2021-2-10 09:26:49

本帖最后由 Peteryo01223 于 2021-2-10 09:52 编辑

Daniel_Zhang 发表于 2021-2-8 18:37
嗯呢,他改了回答,一开始不是那个答案,所以我会那么说

我这次,对不?
print ('甲乙出现在相对顶点的时间(分钟):','甲乙相遇次数为:')
for a in range(1,100):
    if abs(55*a-(10*a+10))%40==20: # 确保甲乙位置之间恰好差了 20m,即:符合在四边形上位置相对的要求
      if 55*a%10 == 0: # 确保甲在某个角。同时,由于上面code规定了位置相对,那么乙肯定在角上。
            print (a, '\t'*5 ,1 + (a - 10/85) * (35+55) //40)
            # 乙和甲方向相对,速度是30m/分。可把乙的速度,换算为顺行方向 10m/分,以方便求 a。
            # 相向而行,计算相遇次数。第(10/85)分钟首次相遇,加上,之后,甲乙一起行走的"总长(85 * (a - 10/85))",地板除法,除以周长(40),结果就是次数。
            # 额外加 1,是因为,首次相遇,是甲乙相对10米而行的那一次,在第(10/85)分钟,就出现了,属于例外。
页: [1] 2
查看完整版本: 一道初中数学题