Python 用自然语言描述算法并实现(以求解S=1+2+3+……+100问题为例)

索引

  • 一、算法概述
    • (一)算法的五个特征
    • (二)高斯求和对于五个算法特征的理解
  • 二、求解:S=1+2+3+……+100
    • (一)方法
    • (二)自然语言描述
    • (三)代码实现(for、迭代法)

一、算法概述

定义:算法是指解决问题所采用的方法和步骤,是一系列解决问题的清晰指令。

算法要给出“如何做”过程中所包含的所有步骤,并用适当的方式把它准确地描述出来。

参考自:重庆大学出版社《初中信息技术》八年级上

描述方法:

  1. 自然语言(通俗易懂,易产生歧义)
  2. 流程图(形象直观、更易理解)
  3. 伪代码(更易转换为代码,不直观)

(一)算法的五个特征

  1. 确定性
    算法要有一个清晰的起始步,表示处理问题的起点,且每一个步骤只能有一个确定的后继步骤
  2. 可行性
    每条规则必须是确定的、可行的
  3. 有穷性
    从而组成一个步骤的有限序列;要有一个终止步(序列的终止)表示问题得到解决或者不能得到解决。
    例如:S=1+2+3+……+100+……+∞
    S的答案无法求解
  4. 输入项和输出项
    算法总是对数据进行加工处理,因此,算法的执行过程中通常要有数据的输入(0个或多个)和数据的输出(至少一个)的步骤。

(二)高斯求和对于五个算法特征的理解

  • 计算这道题目的算法有限制范围,可以在有限时间内完成,这体现了算法的第一个特征——有穷性。
  • 计算时可以用纸笔、算盘、运算器和计算机来完成,其计算的过程和方法是多样的,但结果是唯一的,这就是算法的可信性、确定性。

二、求解:S=1+2+3+……+100

(一)方法

  • 首尾相加法
  • 凑数法
    1+100=101;2+99=101;3+98=101……,相加50次,得出最终答案。
  • 顺序相加法
  • 计算机算法
    令S=0,使1 n=1,S=0时,S=1; n=2,S=1时,S=3;
    n=3,S=3时,S=6; n=4,S=6时,S=10;

(二)自然语言描述

自然语言描述算法 = 日常语言 + 数学符号
两个基本要素:初始状态、变化规律。
Python 用自然语言描述算法并实现(以求解S=1+2+3+……+100问题为例)_第1张图片

初始状态:S=0;i=1
S的变化规律:S新=S旧+i
i的变化规律为:i新=i旧+1
Python 用自然语言描述算法并实现(以求解S=1+2+3+……+100问题为例)_第2张图片
参考自:

  • https://wenku.baidu.com/view/e3a1aea9370cba1aa8114431b90d6c85ed3a881c.html#
  • https://wenku.baidu.com/view/fcb78041f68a6529647d27284b73f242336c31c6.html

(三)代码实现(for、迭代法)

基础代码一:

#CalarithmeticSequencesumV1
n=int(input("请问你加到哪个数为止:"))
s=0
i=1
for i in range(n+1):
    s=s+i
    i+=1
print("s的和为:",s)

运行结果:

请问你加到哪个数为止:100
s的和为: 5050
>>> 

迭代法:

#CalarithmeticSequencesumV2
def Arithmetic(num):
    if num==1:
        return 1
    else:
        return Arithmetic(num-1)+num
    
def name(num):
    if num==1:
        return str(num)
    else:
        return name(num-1)+"+"+str(num)

def main():
    print("S=",Name,"=",S)
    
n=int(input("请问你加到多少为止?"))
S=Arithmetic(n)
Name=name(n)
main()

运行结果:

=============== RESTART: D:/Aiyyin/CalarithmeticSequencesumV2.py ===============
请问你加到多少为止?50
S= 1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23+24+25+26+27+28+29+30+31+32+33+34+35+36+37+38+39+40+41+42+43+44+45+46+47+48+49+50 = 1275
>>> 

最后给大家推荐一部电影《测量世界》,讲述高斯的精彩人生。

你可能感兴趣的:(Python,python,算法,编程语言)