学习周记2:2019.2.25-2019.3.3

 

前言 

这学期几乎全是硬核的算法/程序课,为了督促自己认真学习,我将每周写一篇周记。周记模板前一周保留,当周每日更新当日笔记。如有整段文字代码适合另起blog,也将链接标在周记对应的日期下。

课程:算法设计与分析、数字图像处理、游戏AI中的算法、视觉计算与深度学习、人工智能引论及实践课(NLP)、Python程序设计与数据挖掘导论、计算机图形学。

网课:程序设计实习、吴恩达机器学习、数据结构与算法。

TODO List

  1. 算分第一次作业(DDL 周五小班课 Done 周四下午)
  2. 游戏AI和人工智能引论课件(DDL 本周 Done 周二上午)
  3. 游戏AI游戏下载安装库(DDL 本周)
  4. 算分论文还没开始看(DDL 本周)
  5. 回顾简历上的项目,准备面试(DDL 周六)
  6. 刷题,尤其是树和图!(DDL 每天)
  7. 程序设计实习课件(三)简单的地方过一遍(DDL 周二晚 Done 周二晚)
  8. 程序设计实习课件(一)过一遍难的地方(DDL 周二晚 Done 周三早)
  9. 程序设计实习课件(二)认真学一遍!(DDL 周四晚 Nearly Done 周四晚)
  10. 计算机图形学确定一下课程内容(DDL 本周)
  11. 数字图像处理浏览课本(DDL 本周)
  12. Python搞到课件update一下(DDL 本周)
  13. 人工智能引论复习(DDL 本周 Nearly Done 周五晚)
  14. 挑战杯路网距离学习(DDL 本周)

 

2019.2.25

课程:算法设计与分析、游戏AI中的算法、人工智能引论、计算机图形学

日记:

算分真的是数学课啊,今天第一次留作业。游戏AI没怎么听,分析了各类游戏以及策略,我在补程序设计的作业。

计算机图形学还在讲概论,没怎么听,搞明白了作业什么的,感觉和GIS这边的计算机图形学风格完全不一样,要来了GIS的课件和作业,学的时候对比着看看吧。

 

C++11 lambda表达式与函数对象

https://blog.csdn.net/u010525694/article/details/72846701#commentBox

https://en.cppreference.com/w/cpp/language/lambda

起因是,今天在17群里看到如下代码:

auto suicide = []{ std::terminate(); };

不明觉厉,然后发现是匿名函数。emmm,Python的Lambda倒是大一就用过,啊啊啊,快点更熟悉C++吧!

 

C++中的this指针

在C++中,this指针是所有成员函数的隐含参数(注:友元函数没有this指针,只有成员函数才有this指针),对象能通过this指针来访问自己的地址。也即,在成员函数内部,可用this来指向调用对象。

(呃,我居然忘了这个)

 

C++ 把引用作为返回值

http://www.runoob.com/cplusplus/returning-values-by-reference.html

https://blog.csdn.net/zhongguoren666/article/details/8523458

以引用返回函数值,定义函数时需要在函数名前加&。用引用返回函数值的最大好处是,在内存中不产生被返回值的副本。

我的理解是:所谓“把引用作为返回值”,就是返回了本该返回的变量的引用!也就不必生成一个新的变量副本。

但是浏览完相关博客,感觉似乎“把引用作为返回值”除了节约内存空间以外没什么其他应用,毕竟区别只是返回了一个引用,而返回处本来就在(这个引用指向的变量的)作用域内。任何对引用的操作都可以直接进行嘛。也许是我想多了,节约内存空间就已经足够牛逼了。另外第二个博客推荐细看《Effective C++》,再说吧。

 

2019.2.26

复习课程:游戏AI中的算法、人工智能引论、程序设计实习

日记:

上午复习了游戏AI和人工智能引论课件,下午刷程序设计(一)和(三)。

刷着刷着就觉得很忧伤,自己之前花了那么多力气吭哧吭哧学编程,可是那么多好东西就直接放在程序设计课里面了。我为什么不早点(不从一开始就)看这门课程呢?明明去年学程设语言的时候也可以看的啊。计概少教一点,数算少教一点,程设少教一点,我...我有点难过。诶,总之我获得的信息实在太少了,我获得信息的能力也要加强!当然,努力一点,耐心一点!

STL的容器直到今天才算是比较清晰,之前就知道什么vector map set然后瞎用,今天明白了multi和unordered的意思,以及实现的大致区别。只是会使用是不够的,要理解他们是怎么实现的才能更高效地使用。

C++ 匿名函数

学习周记2:2019.2.25-2019.3.3_第1张图片

外部变量:不是在匿名函数内部定义的变量都是外部变量。如下ff()函数x,y,z都是外部变量,a,b和n不是外部变量。

学习周记2:2019.2.25-2019.3.3_第2张图片

学习周记2:2019.2.25-2019.3.3_第3张图片

学习周记2:2019.2.25-2019.3.3_第4张图片

 

2019.2.27

课程:Python程序设计与数据挖掘导论、数字图像处理、算法设计与分析、教育与人工智能

日记:

Python因为觉得前几周估计在讲语法之类,没去上课。数字图像处理没讲啥,我感觉可能又要自学了,看书做作业。算分今天认真听了,讲分治。

今天主要在看郭老师的慕课,看算法,深搜广搜,贪心动归什么的。我发觉过去有太多误解了,譬如我一直以为递归就是把最终的问题一步步往小变,动归就是数组从小往大一个个计算(其实动归可以递归实现也可以递推实现),深搜就是解决骑士周游之类的问题(其实周游问题是太特殊的一个问题,算法只是一个“函数架子”罢了),广搜就是词梯问题和最短路径之类(其实这些问题基本都可以深搜解决)。当然这样理解也不是完全不对,但是就很机械很割裂。我潜意识里会把这些算法用题目去“分开”:深搜是一种方法,能解这一类问题。广搜是另一种方法,能解另一类问题。只有分治是把问题进行分割,最小距离问题必须用广搜(更不要说我寒假还有那么一小会儿把前/中/后序遍历的区分和深搜广搜搞混)。也就是说每种算法在我脑子里是“并列”的。

我曾经隐约觉得深搜广搜是一个特定的函数(现在觉得是函数架子),按需要调用返回答案,我们需要求的结果在返回值和参数里。但是我现在“突然”想明白,诶,深搜是一种算法啊,就是先做一些预处理把东西都准备好,从起点“进去”,做一些事情,然后“递归”,跑到下一层,在“下面乃至下下下下下面”继续做事情,发现到头了就跑回来,跑回来的时候把事情都做完了。全局变量一用,我们可以身处其外纵观全局,记录一些我们在意的数据(最值什么的)就好了。

说白了,我之前就没真正学过算法,我只是被科普了一下。我只知道深搜广搜的搜索顺序,只看明白了例题的代码,对代码怎么实现算法不是很清晰,对具体能解决什么样的“具体问题”,怎么去解决,更是不甚清楚。我当时看了半天代码,搞明白骑士周游问题一步步是怎么下来的,但是无奈那时代码理解能力差看的慢记不清,加上非算法代码实在太多,提炼不出核心代码,也就没有学到真正的算法实现。脑子里糊糊涂涂的。

相比之下慕课就很清晰,先抽象问题,再一步步分解问题,想怎么解决。会给一类题目,然后直接开始总结方法。算法就是搭代码架子,具体题目去填不同的操作。我曾经觉得很难看不懂的东西,慕课看起来...就很简单。

想想看,深搜广搜,不过是搜索(遍历)顺序不一样而已,最短距离问题当然也可以深搜(记录最小值就行),如果是有权边最短距离就得深搜。什么动归递归分治,根本不是并列的关系(也不完全是包含的关系),其实也没必要去想它们之间是什么关系。重点在于它们是通过寻找状态(不同大小的问题)以及状态之间的联系转移(代码要实现的操作)来解决问题的,毕竟不管什么问题要解决都是要“一步步解决”变小的。只不过某些量需要全部考虑状态总数大小确定而且状态是“紧挨着的”,可能就用动归,不然可能用递归比较好,递归一般来说慢一点等等区别。

说了一大堆乱七八糟的,总之,为什么我以前这么菜,烦。以及,编程不写多多的码,就是耍流氓。

学习周记2:2019.2.25-2019.3.3_第5张图片

 

2019.2.28

复习课程:程序设计实习、数字图像处理

日记:

第二周周四没课(因为双周然后实践课第三周以后才开),所以!复习算法!

今天小绿和小蓝更新了,难过了很久,emmm...

晚上开始看数字图像处理的课本,课件实在看不下去太简略了。但是课本第三版又太啰嗦了(而且数学实在太多),好像还是Matlab版本比较有意思。以及今天才知道什么是椒盐噪声...以前就以为是那种颗粒状的,原来还分胡椒和盐...

椒盐噪声是使图像的一些随机的噪声点,胡椒噪声的像素值为黑色(0),盐噪声的像素值为白色(255)。

 

2019.3.1

课程:视觉计算与深度学习、程序设计实习、算法设计与分析小班课

日记:

我深刻检讨!上午上课,下午上课,晚上就屁颠屁颠跑去吃好吃的,学习没多久就开始看b站对着笛子大大画的头像笑成小傻子,然后一不小心翻到一个《画外的我们》的同人up主的视频,然后实名心动跑去闲鱼淘二手。然后加了卖主的QQ进了绿蓝群...总之,过于浪荡了。卖主似乎很厉害的样子,是个高二的小朋友,会画画,打算认真学习所以淡圈了出一些同人(不过要等到高三才出)。我和卖主聊了很久,然后就...emmm...啊啊啊,我打算把她的所有同人周边都买下来!

嗯,所以今天没什么学习笔记。

 

2019.3.2

复习课程:计算机图形学、数字图像处理

日记:

没学什么,搜了一通资料,大概看了一眼,想揍自己。绿蓝一时爽,一直绿蓝就没法变成像小蓝一样伟大的人工智能科学家了!

和学长聊了聊信科保研的事情,总之他推荐我尽快去实验室,但是我怎么去实验室喔。太菜了。我现在的能力远远达不到所谓天赋所谓能力,就是欠练习!小蓝请给我力量!

 

2019.3.3

复习课程:程序设计与实习-刷题

日记:

做了周赛,一如既往地菜,还好。

看计算机图形学,看到自闭。

 

这个星期真的是,太颓废了啊!不行!下周每天至少刷两次模拟竞赛!

 

 

你可能感兴趣的:(学习日记系列)