Java学习笔记|Java简介
Java的特性
1. Java是简单的:
-Java语法和C++很接近,却没有C++中一些少使用、难理解的特性,比如:操作符重载、多继承、自动的强制类型转换。尤其是Java不使用指针,而是使用引用,并提供了自动分配和回收的内存空间,不需要为内存管理而担忧。
2. Java语言是面向对象的:
Java 语言提供类、接口和继承等面向对象的特性,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为 implements)。Java 语言全面支持动态绑定,而 C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。
笔记|统计学习方法:朴素贝叶斯
联合概率
朴素贝叶斯是生成模型,由训练数据学习联合分布概率,求得后验概率为: 。联合概率分布为: 概率估计方法是极大似然法,或者贝叶斯估计。
笔记|统计学习方法:k近邻算法
k近邻算法(k-NN)是一种基本分类与回归方法,它有三个基本要素,本文将介绍k近邻算法的模型与kd树。
有关抛射角度对铅球射程的影响的研究
假设——以水平面为参考系
假设一定高度的人以一定的角度抛出一铅球求该铅球的最远射程
- 设运动员出手高度为h
- 出手角度为
- 出手速度为v
- 铅球达到最高点时间
- 从最高点下落到水平面的时间为
- 总时间
- 水平方向路程
- 忽略空气阻力
- 不考虑展臂动作带来的误差
求解过程
笔记|统计学习方法:感知机模型
1 | (由于我的markdown文件是使用VSC写的,在此顺便记录一下markdown语法) |
感知机(perception)是一个二分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1与-1二值
Git操作与仓库创建
Git简介
首先了解一个概念:版本控制,简单来说就是如果你做文案工作,每次提交之后,你的领导会让你修改,一篇稿子可能修改十几次,但是最后定稿的很可能不是最新修改的那一稿,所以就需要有个版本控制的方法,可以回溯到你所修改的任何一版,并且可以拿出来使用。
目前来说,版本控制主要分为:集中式版本控制(Centralized Version Control Systems,简称 CVCS)和分布式版本控制,(Distributed Version Control System,简称 DVCS)。
集中式版本控制类似于中央集权,多个终端与一个服务器进行交互,缺点明显,如果服务器损毁,则所有终端都不能拿到最新版本。
分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。
下图就是分布式版本控制系统的图解:
想更多的了解这两者的优缺点,请点击这里
有关Github的介绍
Github是一个面向开源的私有软件托管平台,因为只支持Git作为唯一的版本库格式进行托管,所以叫Github。它于2008年4月10日正式上线,它的开发者也是linux之父:“林纳斯·本纳第克特·托瓦兹”,作为一个分布式的版本控制系统,Github的功能除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,在 GitHub 上托管的版本数量非常之多,其中不乏知名开源项目 Ruby on Rails、jQuery、python 等。Github的仓库是他独有的特征,你大可以理解为一个无限容量且没有传输速度限制的网上云盘,但是这个云盘是可以设置公共与私密空间的,在这个开源的时代,你可以通过这个平台看到世界上许多其他大佬的程序作品,并且学习他们的编程思想,而且这很容易获得。