初识算法之美

14天阅读挑战赛

本篇是学习了异步社区的《趣学算法(第2版)》 第一章之后总结的。

在这里插入图片描述

对算法的理解:

计算机虽然可以高效的进行运算,但是有很多问题拼的不是算力,而是策略。如果没有策略的去计算,那再强的运算能力也只能称为“蛮力”。策略就是帮助我们如何用更少的计算步骤、更快的速度去运算出结果。换言之,策略就是你设计算法的思路,目的只有一个就是:快人一步。

计算机不同于人脑,人脑面对问题可以先去“观察”、“分析”,然后把复杂转化成简单问题(跟数学题一样,算法就是简便的解题思路)。目前在绝大多数领域计算机还不具备这个功能,离开了人脑,计算机还只是一个人的使用工具罢了。

算法有两个衡量标准:

  • 时间长短(时间复杂度)
  • 占用内存大小(空间复杂度)

先展望一下学习历程:

算法学习是一个循序渐进的过程,经常训练解题能力,逐步积累解题方法策略,最后内化成自己的知识,灵活运用去应对新的问题。

“初极狭,才通人。复行数十步,豁然开朗。”,挺喜欢这句话😁

算法知识点

  1. 高斯算法(倒序相加)
  2. 数列求和

算法题目

求: S n = 1 + 2 + 2 2 + 2 3 + . . . + 2 63 = S_n = 1 + 2 + 2^2 + 2^3 + ... + 2^{63}= Sn=1+2+22+23+...+263=

做题思路

方法一

公式法

如果还记得高中数学知识,不难发现,这是一个等比数列求和问题, a 1 = 1 ,公比 q = 2 , n = 64 a_1 = 1,公比q = 2,n = 64 a1=1,公比q=2n=64

等比数列求和公式: S n = a 1 ∗ 1 − q n 1 − q , ( q ≠ 1 ) S_n = a_1 * \frac{1 - q^n}{1 - q} ,(q ≠ 1) Sn=a11q1qn(q=1)

本文暂不讲解公式推导过程

代入公式,上面的式子 = 1 ∗ 1 − 2 64 1 − 2 = 2 64 − 1 1 * \frac{1 - 2^{64}}{1 - 2} = 2^{64} - 1 1121264=2641,从而转化问题,解题

方法二

忘记方法叫什么名字了,主要原理就是销项

根据原式,等号两边同时乘以2,得式子② 2 S n = 2 + 2 2 + 2 3 + . . . + 2 63 + 2 64 2S_n = 2 + 2^2 + 2^3 + ... + 2^{63} + 2^{64} 2Sn=2+22+23+...+263+264

用式子② - 原式 = S n = 2 64 − 1 S_n = 2^{64} - 1 Sn=2641

总结

通过上面一个算法小例子,又勾起了我对数学的兴趣。算法跟数学是息息相关的,平常也要复习一下数学知识,相信也会有所帮助的。


我是 甜点cc

热爱前端,也喜欢专研各种跟本职工作关系不大的技术,技术、产品兴趣广泛且浓厚,等待着一个创业机会。本号主要致力于分享个人经验总结,希望可以给一小部分人一些微小帮助。

希望能和大家一起努力营造一个良好的学习氛围,为了个人和家庭、为了我国的互联网物联网技术、数字化转型、数字经济发展做一点点贡献。数风流人物还看中国、看今朝、看你我。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

甜点cc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值