thumbnail
全面解析 js 中的 let/var/const
对于从 C 系语言转来学习 js 的开发者而言,最难理解的就是 js 中的var、let、const 的设计。在其他语言中,每个变量默认都有自己的作用域,然而在 js 中并不是这样。直到ECMAScript 6标准的确立,才给 js 开发带来了更简单的作用域管理。ECMAScript 6是在 2015 年正式发行,所以又叫ECMAScript 20…
thumbnail
Swift 属性
一: 存储属性 非 lazy 型的属性,必须在自己的 init 完成之前,完成初始化。 1、直接赋值: let attr: Int = 1 2、用自执行的 closure 赋值 // 当初始化工作有多个属性要设置的时候,用 closure 更合适 let attr: Int = { let x = 1 + 2 return x }() // 上边等…
thumbnail
再理解 iOS 多线程中的的队列和同步
看过了很多多线程的文章,也写过很多多线程相关的博客;也知道了多线程在操作系统层面,是由中断、原语、信号量、互斥等底层原理实现;但真正遇到多线程问题时,还是不能很快的定位问题出在了哪里。 iOS GCD 的实践 在处理复杂且庞大的多线程项目时,我并不喜欢用 GCD,而更倾向于 NSOperation,原因有二: 1、GCD 的语法格式 (block)…
逻辑回归与最大似然估计法
很多机器学习的教程中,只管给出公式,但公式如何得来,读者并不知晓。这是我个人机器学习的第二篇博客,专门来详细的推导和解释逻辑回归,后文会有详细的数学推导过程。由于机器学习中数学符号太多,用纯文本写博客非常麻烦,索性我将自己的笔记截图贴了上来。 机器学习在解决分类问题时,理论层面依赖的是逻辑回归(logistic regression)。而要弄懂逻辑…
绘图实战三:编程求平面(或空间)线段的交点-向量代数计算法
上一篇:克拉默法则求解交&向量积求解的证明 这一篇,主要通过数学推导向量代数的方法,来编码求解线段交点,这也是最流行的方法,代码实现非常简单,另外,通过向量计算的方式得到交点,好处有三点: 1:支持三维空间的向量交点计算,这是通过方程组无法解决的问题,因为两个三元一次方程组,会得到无穷多的解,这些解实为两个平面交线上的所有点。 2:可以通过…
绘图实战二:编程求平面线段的交点-克拉默法则与向量积法
已知 2D 平面上两条线段的四个端点 a b c d,如何编码求出线段 ab 和 cd 的交点? 作为数学问题来讲,并不复杂,只需建立二元一次方程组,求解未知数即可,但如何编码实现呢 ? 一般来说有以下几种方法: 1:克拉默法则解方程组; 2:空间向量的向量积求解;(可以看做是对克拉默法则的证明,最终得到的结论与直接使用克拉默法则并无差别) 3:通…
绘图实战一:Core Graphics 的几个技巧
在 Apple 平台 (iOS/macOS) 上绘图,有三套方案: 1: Core Graphics,CG 开头的 API 2: Core Animation,CA 开头的 API 3: Metal (苹果已经不在更新 OpenGL ES) Core Graphics 如果是一些简单的图形绘制,一般考虑 Core Graphics,具体就是 dra…
机器学习(1):什么是机器学习
什么是机器学习? 什么是机器学习,目前并没有明确的学术定义,一般有两个比较认可的定义: 1: 人工智能领域的先驱 Arthur Samuel :一种在没有明确的编程下,使计算机具有学习的能力。 2:另一位计算机人工智能领域的科学家 Tom Mitchell 做出了更为学术的解释:机器学习程序,能够通过历史的经验(E),分析预测出特定任务(T)的未来…