“科学艺术本相通,科技人文可相融”。
人工智能的实现却离不开各种算法,而说到算法,虽然人们各种各样的需求在增加,算法的发展迅速,但万物万变不离其宗。
算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。
很早以前我们的祖宗就开始研究算法了。这里不得不就提到我国古代第一部数学专著《九章算术》,是《算经十书》中最重要的一部,内容十分丰富,据初步考证,《九章》大约成书于东汉初期,汇总了中国先秦至汉代的数学成就。
《九章算术》中的“术”可对应计算机科学中的“算法”,一本《九章算术》也就是一本解决实际问题的算法集。
我们来看看取自《九章算术》的里田术。
“问题一今有田广一里,从一里。问为田几何?
答曰:三顷七十五亩。
问题二又有田广二里,从三里。问为田几何?
答曰:二十二顷五十亩”
什么意思呢?
简单翻译一下就是
问题一,有一块方形田地,长为1里,宽为1里,其面积是多少?
答:3顷75亩。
问题二,又有方形田地,其长为2里,宽为3里,其面积是多少?
答:22顷55亩。
古人的思想,其实和我们现代科技又是相通的,在计算机上,我们可以再现古人之思。
比如这段话,也可以用我们设计优雅、明确、简单的编程语言Python来翻译。
Python函数翻译里田术
1、自定义函数
我们可以把里田术定义成自己的一个函数。函数定义包括函数的名字以及函数被调用时运行的语句序列集。下面是这个函数的源码,如图所示。
提示
关键字是编程语言里事先定义的、有特别意义的标识符,例如:def是一个关键字,表示这是一个函数定义;return也是一个关键字,表示返回函数结果。
2、注释
3、程序剖析
程序第一部分为两条赋值语句,一句赋值ji_li(积里),一句赋值mu_shu(亩数)。第二部分是亩数转换,第三部分连接字符串返回结果。
1.赋值语句
ji_li = guang * cong #广从里数相乘得积里
mu_shu =375*ji_li #以三百七十五乘之,即亩数
第一条赋值语句将传入的参数guang、cong相乘的结果赋值于变量ji_li。
第二条赋值语句将ji_li与375相乘的结果赋值于变量mu_shu。
2.亩数转换
# 1顷 = 100 亩,亩数转换成顷和亩
qing = int(mu_shu/100)
mu = mu_shu%100
所以,上面两句代码的含义如下。
亩数(mu_shu)若为375,顷(qing)=3,亩(mu)=75,
也就是:375亩 = 3顷75亩
3.字符串连接
# 连接成字符串并返回结果
jie_guo = str(qing) + '顷' + str(mu) + '亩'
return jie_guo
4、运行结果
在IDLE中输入这个函数,最后输入一个空行结束。完成这个函数定义后,我们可以调用它来解决里田术问题一、问题二,运行结果如图所示。
注意
函数的body(体)缩进要对齐,否则会报错。函数定义完成后,函数中的语句序列集并不会执行。只有调用函数的时候,才会执行函数定义中的这些语句序列集。
这样用Python就解决了《九章算术》中的里田术啦!用严谨的态度在计算机上再现古人之思,在古算法的阐述中体现计算机编程之想、之美,相辅相成、相合相融。
《读九章学Python》用Python语言来表述了《九章算术》中的各种“术”、各种数学思想,将通过《九章算术》来学习Python语言、学习编程、学习算法思维。本书包括许多图解、示例和练习,帮助读者,从零开始,一步步走进计算机编程的世界,一步步走进《九章算术》数学的世界!
《读九章学Python》一书图文并茂,讲解细致,既是一本《九章算术》通俗化的普及读物,又是一本注重实践的Python编程入门教材,为计算机科学注入很多的人文气息。
🎁今日福利
《读九章学Python》
Python版本的《九章算术》,以编程的方式诠释《九章》,通过《九章》学习编程。
如何获得:参与话题留言+转发本文至朋友圈,12月15日,异步君将抽取2名读者赠送《读九章学Python》
今日互动话题:
“关于九章算术,你了解多少”
点击“阅读原文”,立即试读