1到100求和学算法之循环的秘密(1)

简介: 1到100求和学算法之循环的秘密(1)

1 引言

Pascal之父尼古拉斯·沃斯因提出著名公式“算法+数据结构=程序”而荣获1984年计算机领域的最高奖项-图灵奖。通过这个公式,可以发现算法对于程序设计的重要性。然而算法思想的学习异常抽象,往往理解了算法的思想但却难以应用其解决实际问题。

循环结构是程序设计三大结构的重点和难点,几乎所有的算法的设计都使用了循环结构。为什么循环结构应用如此广泛,没有循环结构会给程序设计带来哪些问题,如何利用循环结构求解1100求和问题,本系列文章将带领读者一起探索循环的秘密。

 

2 问题描述

1100求和问题几乎是所有编程语言初学者都会接触到的一个问题,其定义如下,编程实现:

1 + 2 + ··· + 100 =

限制条件:仅依赖变量定义和加法运算符两个知识点。

 

3 算法描述

程序设计初学者在学习完变量的定义之后,紧接着学习了加减乘除等运算符。仅有这些知识是否可以求解1100求和问题?

1100求和问题定义的是1100共一百个整数的求和,其问题规模n=100,如何缩小问题规模,简化问题求解。如果将问题规模n缩小到两个整数的求和,即1+2=?

定义两个变量a1a2,再利用加法运算符即可求解。伪码如下:

a1 = 1

a2 = 2

sum = a1+a2

既然学会了两个整数的求和,采取相似思路,可以将问题规模进一步扩大到100个整数。

定义a1, a2, ..., a100100个变量保存1100100个,然后直接相加。

a1 = 1

a2 = 2

···

a100 = 100

sum = a1 + a2 + ··· +a100

(上面两处省略号并非程序语言关键词,而是由于空间有限故省略)

至此,仅依赖变量定义和加法运算符两个知识点就可以完成1100求和问题的求解。

 

4 结语

本文介绍了程序设计初学者在仅仅学习变量定义和加法运算符两个知识点后如何求解1100求和问题,通过缩小问题规模采用以此类推的方式进行求解。当问题规模缩小后,就可以快速完成求解。

如何缩小问题规模?1100求和问题的问题规模非常易于发现,问题规模缩小后,无论是12求和还是1100求和本质上是一样的。但是有些问题的问题规模却不好定义。后续文章将针对该问题进行深入的探讨。

另外虽然本文算法完成了对1100求和问题的求解,但是存在哪些问题呢?欢迎下方留言讨论。社会的进步就在于不断的发现问题,不断的解决问题,如此循环往复。

目录
相关文章
|
11月前
|
算法 Java
7.Java判断和循环+面试相关力扣算法题详解
7.Java判断和循环+面试相关力扣算法题详解
156 1
|
机器学习/深度学习 传感器 算法
Matlab 蛇算法优化门控循环单元(SO-GRU)的数据回归预测
Matlab 蛇算法优化门控循环单元(SO-GRU)的数据回归预测
|
机器学习/深度学习 传感器 算法
Matlab 哈里斯鹰算法优化门控循环单元(HHO-GRU)的数据回归预测
Matlab 哈里斯鹰算法优化门控循环单元(HHO-GRU)的数据回归预测
|
机器学习/深度学习 传感器 算法
Matlab 向量加权算法优化门控循环单元(INFO-GRU)的数据回归预测
Matlab 向量加权算法优化门控循环单元(INFO-GRU)的数据回归预测
|
4月前
|
人工智能 算法 大数据
算法金 | 推导式、生成器、向量化、map、filter、reduce、itertools,再见 for 循环
这篇内容介绍了编程中避免使用 for 循环的一些方法,特别是针对 Python 语言。它强调了 for 循环在处理大数据或复杂逻辑时可能导致的性能、可读性和复杂度问题。
51 6
算法金 | 推导式、生成器、向量化、map、filter、reduce、itertools,再见 for 循环
|
4月前
|
算法 测试技术 Python
python中算法无限循环(Infinite Loops)
【7月更文挑战第18天】
112 4
|
3月前
|
算法
【算法】递归总结:循环与递归的区别?递归与深搜的关系?
【算法】递归总结:循环与递归的区别?递归与深搜的关系?
|
5月前
|
存储 算法 C语言
二分查找算法的概念、原理、效率以及使用C语言循环和数组的简单实现
二分查找算法的概念、原理、效率以及使用C语言循环和数组的简单实现
|
5月前
|
算法
数据结构和算法学习记录——时间复杂度的计算(嵌套循环、大O的渐进表示法、双重循环、常数循环、strchr、冒泡排序、二分查找、斐波那契数列递归)
数据结构和算法学习记录——时间复杂度的计算(嵌套循环、大O的渐进表示法、双重循环、常数循环、strchr、冒泡排序、二分查找、斐波那契数列递归)
412 1
|
6月前
|
机器学习/深度学习 算法
m基于GA-GRU遗传优化门控循环单元网络的电力负荷数据预测算法matlab仿真
在MATLAB 2022a中,一个基于遗传算法优化的GRU网络展示显著优化效果。优化前后的电力负荷预测图表显示了改进的预测准确性和效率。GRU,作为RNN的一种形式,解决了长期依赖问题,而遗传算法用于优化其超参数,如学习率和隐藏层单元数。核心MATLAB程序执行超过30分钟,通过迭代和适应度评估寻找最佳超参数,最终构建优化的GRU模型进行负荷预测,结果显示预测误差和模型性能的提升。
183 4