我受打击了

本文探讨了作者在学习数据结构与算法课程时的挫败感与收获,强调了这门课程对计算机专业学习的重要性。通过具体实例如单链表的实现和矩阵转置算法的编写,展示了编程的复杂性和对逻辑思维的要求。同时,文章还提到了在面向对象程序设计课程中遇到的问题,如语法错误和理解类的概念。最后,作者反思了编程的学习过程,认识到编程需要不断积累和实践,并表达了对未来的期待。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      这几天编程,编的我头大,我很受打击。从来没有过这样的挫败感。当学了《数据结构与算法》这门课后,我才意识到学习编程真的不是单单学习语言,学习计算机程序语言只是一小部分。

     终于要明白了这个公式的一些含义:程序=算法+数据结构。就凭这个公式就知道《数据结构与算法》对计算机专业学习的重要性了。唉,我觉得这又是一门需要考验智商的学科。我智商一般,只能是认真一点对待了。原以为数据结构与算法也能看一看就好了,发现真的不是那么一回事,这门课需要我们去深思,数据的构成和实现操作数据的算法。

一个单链表就让我想了好久,为什么一直要用LinkList类型而不是LNode。今天上午编一个矩阵转置算法,两节课==2个钟头,傻傻的看着教材和机房的屏幕,简单敲了一下数据结构的定义,就不知道下面的了…………没有做出来,很是受挫!

   下午也是上机课,是c++面向对象程序设计的上机,做的就是静动态链接库,看了同学的演示,感觉也就是那么一回事。但是轮到自己一字一句的写起来时,就错误百出,第一次犯了错误自己没有独立的改正(毕竟不是什么大错误),找了同学来看,原来都是很简单的错误,真的是让我苦笑不得,居然犯了类似于没有在语句结束后加分号的错误。一个是没有在使用string的程序中using namespace std;另一个是对象调用成员函数是用了类名。晕!狂晕!问题解决后,我都快脸红了。

     我在上个学期学了c++,实际上c的内容,现在学习类,自己在暑假时略微的看了一些:就是类的封装性、继承、多态嘛。真的没有想到有这么的复杂,现在都学到晕晕的,三种继承方式…………构造函数,析构函数,友元函数等。老师讲这时最基本的,还是简单的程序,要是复杂的,你们真的会晕!

      最受打击的是今晚的期中考试了,c++的期中考试题都是很基本的,但是居然很多看不懂,程序改错题也有好几题没有找出来,大部分题目都是没有十足把握的,没有底气的勉强将试卷写完直到老师宣布考试时间到后离场。

原来自己心中想要的那么炫酷的计算机技术都是要经过一点一滴的积累学习才可能学到的,编程原来帧的很难,但也许又不是那么的难,只有当自己的水平达到一定的时刻,才会有也许不是那么难一说吧…………

        the way to become good at  programming is not that easy to go through!

   the data structure and algorithm are so important to us computer related majors!!

and what' s more ,the essential of computer science is math,believe or not ,as it is^^^^


### PCA降维原理 主成分分析(Principal Component Analysis, PCA)是一种常用的无监督学习方法,用于数据的降维处理。它的核心思想是通过线性变换将高维度的数据映射到低维度空间,在尽可能减少信息损失的情况下降低数据复杂度。 #### 数据中心化 在PCA过程中,第一步是对原始数据进行中心化操作,即将每列数据减去其均值[^1]。这样做的目的是使数据分布围绕原点展开,便于后续计算协方差矩阵。 #### 协方差矩阵与特征分解 接着,构建数据集的协方差矩阵,并对其进行特征值分解。协方差矩阵反映了变量之间的关系强度和方向。通过对协方差矩阵求解特征值和特征向量,可以获得数据的主要变化方向[^2]。 #### 主成分的选择 根据特征值大小排序,选取前k个最大的特征值对应的特征向量作为新的坐标轴。这些新坐标轴即为主成分,能够最大程度地保留原始数据的信息。通常情况下,会选择使得累计贡献率达到一定阈值(如95%)的主成分数量[^3]。 #### 投影转换 最后一步是将原始数据投影到选定的主成分上完成降维。具体而言,利用前面得到的特征向量构成变换矩阵T,然后让标准化后的样本乘以此矩阵即可获得降维后的结果[^4]。 ### Python实现PCA的应用实例 以下是基于Python使用`scikit-learn`库执行PCA的一个简单例子: ```python from sklearn.decomposition import PCA import numpy as np # 创建一个简单的二维数组模拟数据集 data = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8]]) # 初始化PCA模型,指定要降到的目标维度为1 pca = PCA(n_components=1) # 对数据进行拟合并立即转化 reduced_data = pca.fit_transform(data) print("Original data:\n", data) print("\nReduced data:\n", reduced_data) ``` 上述代码展示了如何加载必要的模块、准备测试数据以及设置参数并通过调用`fit_transform()`函数一次性完成训练与降维两个阶段的操作[^5]。 ### 参数解释 - `n_components`: 表示目标维度数目。 - `copy`: 如果设为True,则会在副本上进行所有修改,默认行为是为了保护输入数据不影响。 - `whiten`: 是否启用白化选项,此功能可以使各主成分具有单位标准差,有助于某些特定场景下的进一步分析或建模工作。 --- 问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值