Python生成特定的乘法题
Cemon_Liu Lv4

在辅导女儿数学作业时,发现她对于一些乘法运算经常算错。所以我就再思考,是不是可以针对特定的类型,用编程遍历所有的题目,然后做出练习题。

题目要求

一个三位数与一个一位数相乘,

  1. 其中三位数和的十位,百位在乘以乘数后必须有进位,即大于10
  2. 十位乘以乘数后的进位假设为X, 百位数乘以乘数后个位假设为Y, X+Y也要大于十
    比如230 乘9 就属于这种类型。

咨询Chatgpt

本来打算让gpt直接生成结果, 在穷举了一些后,他要调用编程后台运算,然后反馈说运算太多,直接给了代码,让我自己跑。

1
2
3
4
5
6
7
非常抱歉,由于组合比较多,我无法在这个平台上进行编程计算。但是你可以通过编程语言如Python来计算所有满足条件的A和B的组合。以下是一个可能的Python代码示例:

for a in range(100, 1000):
for b in range(1, 10):
if (a // 10 % 10) * b >= 10 and (a // 100) * b % 10 >= 1:
print("A=", a, "B=", b)
这段代码将遍历所有满足条件的A和B的组合,并输出结果。希望这个代码示例对你有所帮助。

调试代码

GPT对于条件2的理解有一点问题,所以运行之后,只满足了第一个条件。 所以要自己进行一些修改并且导出到EXCEL里面。这里使用pandas包进行导出。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import pandas as pd

x_raw = {'A': [], 'B': []}
for a in range(100, 1000):
for b in range(1, 10):
ab = a // 10 % 10 * b # A的十位与B相乘
ac = a // 100 * b # A的百位与B相乘
ad = ab // 10 + ac % 10 #新增条件二
if ab >= 10 and ac >= 10 and ad >= 10: # 判断是否产生进位
# print("A=", a, "B=", b)
x_raw['A'].append(a)
x_raw['B'].append(b)
df = pd.DataFrame(x_raw)
df.to_excel("exam.xlsx", index=False)

这样就可以将数据导出到EXCEL之中。

打乱排序

生成的数据是按从小到大排序的,比如231*9, 232*9, 为了避免只算了第一个答案,第二个答案在这个顺序上直接加9。所以在EXCEL使用VBA 来乱序排列。将数据分成三列ABC,并且连上乘号和等于号

1
2
3
4
5
6
7
8
Sub sort()
for i=1 to 100 step 2
Range("D" & i) =Range("A" & i)
Range("D" & i+1) =Range("B" & i)
Range("E" & i) =Range("A" & i+1)
Range("F" & i+1) =Range("B" & i+1)
Next
end sub

通过切换行和从不同列取值,就可以将数据打乱。然后将表格整理完贴到word就可以完工了。

 评论
评论插件加载失败
正在加载评论插件
由 Hexo 驱动 & 主题 Keep
访客数 访问量