惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
Microsoft Security Blog
Microsoft Security Blog
B
Blog
Martin Fowler
Martin Fowler
WordPress大学
WordPress大学
爱范儿
爱范儿
博客园_首页
博客园 - 聂微东
量子位
V
Visual Studio Blog
aimingoo的专栏
aimingoo的专栏
T
The Blog of Author Tim Ferriss
J
Java Code Geeks
小众软件
小众软件
大猫的无限游戏
大猫的无限游戏
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
N
Netflix TechBlog - Medium
F
Fortinet All Blogs
The Cloudflare Blog
T
Tailwind CSS Blog
G
Google Developers Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
月光博客
月光博客
腾讯CDC

愆伏

vue feedback 指令开发 通过webpack对css压缩后所引起的重名问题 NPM 撤回已发布的版本 昆虫有趋光性吗 数组转成字符串(css 属性) 关于grid布局的一些思考 阿里云和腾讯云网站字体族对比 Vue组件抛事件和Function prop的差别 Vue 事件参数传递 Vue Data里面下划线命名无效并报错 使用sublime中的正则处理数据格式 通过nodejs创建目录与文件 macOS 下npm run dev 无法局域网访问 mac 下使用ssh访问非22端口的gitlab 世界是平的,在科学上网之后 使用sublime text3和Markdown来写博客 如果非要给一个标题,那就是2014年非工作总结 不专业呢,就别捣乱 对知乎大号怒撤事件的一点看法 拒绝SB思维 嘀嘀与快的的商业博弈 关于收藏夹功能的思考 你居然都不用微信 一个英语培训机构的外呼电话 智商是硬伤就无解了 扁鹊三兄弟 竖子不足与谋 美丽说、蘑菇街今天一定开了好几个小时的会 个人独立博客会死掉吗? iPad作画
用计算机程序解小学数学方程
tortorse · 2021-10-25 · via 愆伏

最近发现孩子的数学题,我已经无法用他们的解法来做了,比如:

明明用一根绳子来测量一口井的深度。把绳子折成一样长的 3 段,将一端放入井底,井口外绳子余下 3 米;把这根绳子折成 5 段后,将一端放入井底,这时绳子离井口还有 1 米。求这口井的深度和绳子的长度。

看一下题目,我们可以知道井深是固定的,绳长也是固定的。我们假设绳长是 , 根据井深固定列出以下算式:

方程变换一下:

两边乘以最小公倍数

得出绳长 30 米,代入方程算出井深 米。

如何使用程序来解呢?大致思路又是暴力法,比如提供 2 个函数,然后疯狂的输入,直到两个函数返回相等

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function f1(x) {
return x / 3 - 3;
}

function f2(x) {
return x / 5 + 1;
}

let i = 0;
let a = f1(i);
let b = f2(i);

while (true) {
if (a === b) {
break;
}
i++;
a = f1(i);
b = f2(i);
}

console.log(i);

然后在网上搜索了一下,发现有一个专门做方程的库 algebra,使用起来就和写数学公式一样:

1
2
3
4
5
6
7
8
const y1 = algebra.parse("x / 3 - 3");
const y2 = algebra.parse("x / 5 + 1");

const eq = new algebra.Equation(y1, y2);

const answer = eq.solveFor("x");

console.log(answer.toString());

除此之外还可以结合 katex 直接渲染在页面上。

实际运行效果,可查看 algebra Demo