第一讲作业 预备知识
1.有线性方程 , 若已知
和
, 需要求解
,该如何求解?这对
和
有哪些要求?提示:从 A 的维度和秩角度来分析。
设向量的维度为
,定义
的增广矩阵为:
,方程组无解
,方程组有唯一解
,方程组有无穷解
,不可能出现,增广矩阵的秩大于等于系数矩阵的秩(矩阵加入一列,其秩只能增大,不可能变小)
2. 高斯分布是什么?它的一维形式是什么样子?它的高维形式是什么样子?
1)高斯分布及其一维形式
高斯分布即正态分布,其图形特点为中间高,两头低,是钟形曲线。在高斯分布中,以数学期望表示钟型的中心位置,而标准差
表征曲线的离散程度。随机变量X服从数学期望为
,方差为
的正态分布,记为:
其概率密度函数为:
对应的函数图像如下,其中值越大,曲线越平缓(矮小),
值越小,曲线越瘦高,概率分布比较集中:
上述高斯分布为一维高斯分布,这里的是随机变量,是一维的,而不是随机向量。当
,
时,高斯分布为标准高斯分布。
2)一维高斯分布到二维高斯分布的拓展:

这里的是随机向量,是二维的,其中包含两个相互独立的服从正态分布的随机变量。
二维高斯分布图像:
3)从二维高斯分布到多维高斯分布的拓展:
二维高斯分布中随机向量是二维的,其中
为随机向量
的均值,
为随机向量
的方差,其概率密度函数为:
维高斯分布中随机向量
是
维的,其中
为随机向量
的均值,
为随机向量
的方差,其概率密度函数为:
3. 你知道 C++ 中的类吗?你知道 STL 吗?你使用过它们吗?
1)C++中的类可以理解为自定义的数据结构,类中包括了若干个成员,构成了成员列表。类成员可以是数据和函数,一般通过成员函数对类内的数据进行访问,具体请参考C++ Primer Plus等书籍。
2)STL是C++的标准模板库,具体参见C++ Primer Plus等书籍。
4. 你以前怎样书写 C++ 程序? (你完全可以说只在 Visual C++ 6.0 下写过 C++ 工程,只要你有写 C++ 和 C 语言的经验就行。)
在 Visual C++ 6.0 下写过 C++ 工程
5. 你知道 C++11 标准吗?你听说过或用过其中哪些新特性?有没有其他的标准?
知道,新特性请参照C++ Primer Plus等书籍。
6. 你知道 Linux 吗?你有没有至少使用过一种(不算安卓)操作系统,比如Ubuntu?
知道,使用过Ubuntu16.04
7. Linux 的目录结构是什么样的?你知道哪些基本命令,比如 ls, cat 等?
1)Linux(Ubuntu)主要目录结构图:
2)Ubuntu目录功能详解:
| 目 录 名 | 描 述 | |
| / | Linux文件系统根目录 | |
| /bin | bin就是binary,二进制。/bin目录放置可执行文件,root和一般账号都可以使用,如cat, chmod, mv, mkdir等。其实系统有很多放置 执行文件的目录,但/bin 目录比较特殊,因为/bin 放置的是在单用户模式下还能够被操作的命令。 | |
| /boot | 这个目录主要存放开机会使用的文件,如Linux内核和系统启动文件,包括Grub、lilo启动器程序 | |
| /dev | 存放所有设备文件,包括硬盘、分区、键盘、鼠标、USB、tty等。注:在Linux系统上,任何设备与接口设备都是以文件的形式存在于 这个目录当中的。 | |
| /etc | 存放系统的所有配置文件,例如/etc/passwd存放用户账户信息,/etc/hostname文件存放主机名,也有一些目录,如/etc/nginx是目录, 里面存储nginx的很多配置文件 | |
| /home | 用户主目录的默认位置。当你创建一个一般用户账号时,默认的用户主文件夹就在该目录下 | |
| /lib | 存放开机时会用到的函数库,以及/bin和/sbin目录下的命令调用的函数库 | |
| /lost+found | 存放由fsck放置的零散文件。注:fsck命令用于检查与修复 Linux 文件系统 | |
| /media | media是“媒体”英文,顾名思义,它下面存放可删除的设备,包括软盘,光盘,DVD等设备文件 | |
| /mnt | 如果你想要暂时挂载某些额外的设备,一般建议你可以放置到这个目录中。 | |
| /proc | 这个目录本身是一个虚拟文件系统。它放置的数据都是在内存当中,例如系统内核,进程等 | |
| /root | root用户的主目录 | |
| /run | 最常用的就是存放进程的ID。 要特别注意的是:它使用tmpfs文件系统,这是一种存储在内存中的临时文件系统,当机器关闭的时候,文件系统自然就被清空了,我就曾经吃了这个亏 | |
| /sbin | sbin即system binary,用来设置系统的可执行命令,这些命令只有root用户才能用设置系统,其他用户最多只能用来“查询”而已 | |
| /srv | srv是service的缩写,是一些网络服务启动之后,这些服务所需要取用的数据目录。常见的服务有WWW, FTP等。比如WWW服务需要的 网页数据就可以放在/srv/www/目录下 | |
| /sys | 这个目录跟/proc 非常类似,也是一个虚拟的文件系统,主要也是记录与内核相关的信息。这个目录同样不占硬盘容量 | |
| /tmp | 顾名思义,就是用来存放临时文件的地方,所有用户都可以访问。建议该目录不要放重要数据 | |
| /usr | 注意usr并不是user的缩写,而是Unix Software Resource的缩写,即“Unix 操作系统软件资源”放在该目录,而不是用户的数据。这个目录 相当于Windows操作系统的“C:\Windows\”和“C:\Program files\”这两个目录的综合体,系统安装完毕后,这个目录会占用最多的硬盘容量。 | |
| /usr/X11R6 | X Window系统重要数据所放置的目录 | |
| /usr/bin | 用户可使用的大部分命令都放在这里 | |
| /usr/include | 存放C/C++等程序语言的头文件(head)和目标文件(include) | |
| /usr/lib | 包含各应用软件的函数库,目标文件(object file),比如它下面有jvm目录,就是java | |
| /usr/local | 系统管理员在本机自行下载自行安装的软件(非Ubuntu发行版默认提供的软件)一般放在该目录。该目录下也有 bin,etc, include, lib等子目录。比如我在Ubuntu上安装的uwsgi, celery, pip就放在/usr/local/lib目录下 | |
| /usr/sbin | 非系统正常运行所需要的系统命令。最常见的就是某些网络服务器软件的daemon命令,如nginx, ntpd, mysqld | |
| /var
| 如果/usr 是安装时会占用较大硬盘容量的目录,那么/var 就是在系统运行过程中渐渐占用硬盘容量的目录。包括缓存cache,日志log,以及某些 软件运行所产生的文件,包括程序文件(lock file, run file)。mysql的数据库文件也是放置在这个目录下,具体为/var/lib/mysql/目录下 | |
| /var/cache | 应用程序缓存目录 | |
| /var/lib | 存放程序执行过程中,需要使用到的数据文件。比如mysql数据库的数据放在/var/lib/mysql/目录下 | |
| /var/lock | 它是/run/lock目录的软链接,某些设备或文件一次只能被一个应用所使用。这样当这些资源使用时,就要加锁 特别注意:它使用临时文件系统,主机重启后会清空 | |
| /var/log | 日志文件目录 | |
| /var/mail | 电子邮件,当主机做邮件服务端时,发送的邮件都会放在这个目录,建议定期清理 | |
| /var/run | 进程ID,它是/run目录的软连接 特别注意:它使用临时文件系统,主机重启后会清空 | |
| /var/spool | 存放电子邮件,打印任务等的队列目录。它的子目录/var/spool/mail其实是/var/mail的软链接 | |
3)Ubuntu常用命令
8. 如何在Ubuntu 系统中安装软件(不打开软件中心的情况下)?这些软件被安装在什么地方?如果只知道模糊的软件名称(比如想要装一个名称中含有 Eigen 的库),应该如何安装它?
1)软件包(.deb文件)安装方法
//安装
sudo dpkg -i 软件包名.deb
//卸载
sudo apt-get remove 软件包名称
2) 有时候需要配置ubuntu安装的软件,一般安装软件都是使用apt-get install。那么安装完后,软件的安装目录在哪里呢,可执行文件又放在哪里呢。
A、下载的软件的存放位置:/var/cache/apt/archives
B、安装后软件的默认位置:/usr/share
C、可执行文件位置:/usr/bin
D、配置文件位置:/etc
E、lib文件位置:/usr/lib
但是这么找也不一定找得到,所以需要用一些命令查找包的位置。
以chromium-browser为例
/***************方法一******************/
find命令
totoro@SWH:~$ sudo find / -name chromium-browser
/usr/lib/chromium-browser
/usr/lib/chromium-browser/chromium-browser
/usr/bin/chromium-browser
/usr/share/doc/chromium-browser
/usr/share/lintian/overrides/chromium-browser
/usr/share/chromium-browser
find: `/run/user/1000/gvfs’: 权限不够
/etc/chromium-browser从中判断出安装位置为“/usr/lib/chromium-browser”
/****************方法二*****************/
dpkg -L命令
如果已知软件使用apt-get install命令安装的,可以使用这种方法
dpkg -L chromium-browser
/****************方法三****************/
whereis命令
totoro@SWH:~$ whereis chromium-browser
chromium-browser: /usr/bin/chromium-browser /usr/lib/chromium-browser /etc/chromium-browser /usr/share/chromium-browser /usr/share/man/man1/chromium-browser.1.gz
从中判断出安装位置为“/usr/lib/chromium-browser”
3)这个问题应该理解为你大概知道一个库叫什么,如何找到这个库,毕竟你应该知道自己到底想安装什么,不能乱安装。
可以apt search eigen找到你要的包然后再apt install xxx
暴力一点儿的:apt install *eigen* 安装所有带这个关键词的包(!!!有风险,除非你明确知道这么装没问题,即包含这个关键词的包你都需要,否则不要轻易尝试,先明确自己要装什么在装不香吗?!!!)
9.* 花一个小时学习 Vim ,因为你迟早会用它。你可以在终端中输入 vimtutor 阅读一遍所有内容。我们不需要你非常熟练地操作它,只要能够在学习本书的过程中使用它输入代码即可。不要在它的插件上读费时间,不要想着把 Vim 用成 IDE ,我们只用它做文本编辑的工作。
参考教程
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
