没想到我连五年级的题目都解不出来……

故事的起源:

故事的起源是这样的,在我无聊地刷着网站(别想太多)的时候,叮咚一声响,原来是女神来微信了,来向乐于助人的我请教题目:


请教

据她说,这道题是她五年级的妹妹上奥数班做的题目。听到这我不禁笑了,五年级,那不是 有手就行?我马上啪啪啪敲下几个字:很简单,你等等先。
来看看题,题目是这样的:

对于自然数 a 和 b,规定 a ■ b = a × (a + 1) × (a + 2) × ▪▪▪ × (a + b - 1) 。如果 (x ■ 3) ■ 2 = 3660 ,那么 x 等于几?

解题

我们来缕一下思路:
对于新运算 a ■ b ,用python或许可以这样简单地表示:

def math(a:int, b:int):
    result = 1
    for i in range(0, b):
        result *= a + i
    return result

原式可以化简为:[x * (x + 1) * (x + 2)] * {[x * (x + 1) * (x + 2)] + 1} = 3660

有点麻烦。我们把中括号内的式子用m表示,可以变成这样:

  • m = x * (x + 1) * (x + 2)
  • m * (m + 1) = 3660

这样看来,要解这题,就必须解这个方程。那么……上面用python写的那一串定义函数,好像没什么卵用?

就很棒

啥也不说了,着手解方程!翻出我破旧的草稿纸,拿出卡水的笔,开始涂鸦。

不过,这可很难办,由于我水平有限,我鼓捣了半天,愣是没解出这串方程。但是,既然是女神请教,怎能连这题都做不出来?这时候我就想到了我们万能的python。

马上,开整!

打开百度,输入 “用python解方程” :


百度

马上捕捉到关键信息点:sympy库
接下来开始用我们万能的python来解这个难解的方程了。


sympy 解方程

1. 安装sympy:

cmd 打开命令窗口,输入以下指令:

pip install sympy

2. 使用

这里为了方便,我打开了我们 python 的 IDLE 的 shell:
首先导入sympy库:

>>> import sympy

然后我们要设一个未知数 x :

>>> x = sympy.Symbol('x')

接下来解方程:

通过移项、合并同类项等等等的一堆步骤后,将方程右边化为0,变成方程左边等于 0 的形式(你也可以直接用-连接方程两边),然后用solve方法解方程,放入式子和未知数:

>>> sympy.solve((x * (x + 1) * (x + 2) * ((x * (x + 1) * (x + 2)) + 1)) - 3660, x)

当然,也可以解方程组,将方程组和待解的未知数分别用中括号括起来,比如这样:

>>> x = sympy.Symbol('x')
>>> m = sympy.Symbol('m')
>>> e1 = x * (x + 1) * (x + 2) - m
>>> e2 = m * (m + 1) - 3660
>>> sympy.solve([e1, e2], [x, m])

然后,将会返回一个列表,里面就是方程的所有解。


结果……


结果

……这这这……这是什么鬼玩意嘛?!!!看着就头皮发麻
还好,题目说着,a, b 为自然数,所以 x 大于等于 0 且为整数,那么,自然就只有一个答案,即列表的第一项:

3

赶紧发给我的女神:


发给女神

于是,便开始了愉快的撩……,哦不,聊天与教学之旅。


厉害厉害

总结

SymPy 是一个Python的科学计算库,有着一套强大的符号计算体系。它的目标是成为一个全功能的计算机代数系统,同时保持代码简洁、易于理解和扩展。它完全由 Python 写成,不依赖于外部库。除了解方程,SymPy 还支持符号计算、高精度计算、模式匹配、绘图、微积分、组合数学、离散数学、几何学、概率与统计、物理学等多方面的功能。遇到复杂计算找 Sympy 绝对不会让你失望。

附在最后:

其实上面写的那个math函数,还是有一点点用处的,它依然可以用来解这一道题。首先,因为 a 和 b 为自然数,那么他们就为大于零的整数,因此可以使用最蠢也是最简单的办法——代入法,来解这一道题:

def math(a:int, b:int):
    result = 1
    for i in range(0, b):
        result *= a + i
    return result

x = 0

while True:
    if math(math(x, 3), 2) == 3660:
        print(x)
        break
    else:
        x += 1

很快就能得到正确结果: 3


还有……

在我送别了女神,继续一个人孤独地刷网站的时候……
叮咚!

美女来了

哈哈哈哈,真是想清静都清静不下来啊~~


你懂的

CSDN同名搜 H_612,看更多Python文章!
CSDN博客:https://blog.csdn.net/weixin_52132159?spm=1011.2124.3001.5343

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,718评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,683评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,207评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,755评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,862评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,050评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,136评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,882评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,330评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,651评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,789评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,477评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,135评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,864评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,099评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,598评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,697评论 2 351

推荐阅读更多精彩内容