Leon Dong

Curiosity Drives Innovation, Innovation Nurtures Progress.

阿里算法工程师编程小测试-取石子游戏

问题描述现在有一堆石子,共有N个。两个人轮流取石子,先拿完的人获胜。规定第一次不能拿N个,并且每一次拿的石子数量介于1和上一次拿的数量之间。现在的问题是,如果你作为先手,对于给定的N个石子,在保证能获胜的情况下,你最多能拿多少个?如果先手不能获胜,输出0即可。 问题分析这个题有意思的地方就在于每..


计算二项分布的期望

基本概念二项分布即重复N次独立的伯努利试验。在每次试验中只有两种可能的结果(成功和失败),而且两种结果发生与否互相对立,并且相互独立,与其它各次试验结果无关,事件发生与否的概率在每一次独立试验中都保持不变。设随机变量X为N次实验中成功的次数,则如何求X的期望? 按照定义求解假设成功的概率为$p$..


内核程序访问用户地址空间

背景由于做实验需要在Linux内核中添加一些系统调用,我们在一台机器上完成了系统调用的编写,并顺利通过了所有的测试,用户程序的运行也完全正常。不够由于实验数据的增大,我们需要一台内存更大的电脑。为了方便,我们直接把那台机器的硬盘拆下来,放到别的机器上,然后从那块硬盘启动进入系统做实验。 然后神奇..


K-Means 算法基础

基本原理K-Means 作为一种最简单的聚类算法,在数据挖掘中有着比较广泛的应用。如下图所示,给你一批数据(绿色的点),让你将数据划分成2类,这就是K-Means要解决的问题。 总的来说,K-MEANS的具体计算方法可分为如下的四步 随机选取K个中心点 图(b) 遍历所有数据,将每个数据划分..


主成分分析的原理与实践

介绍主成分分析(Principal Components Analysis, PCA)和之前说到的线性判别分析一样,都是一种广泛使用的数据将维方法。PCA是一个和LDA非常相关的算法,从推导、求解、到算法最终的结果,都有着相当的相似,不过它和LDA也有一些不同的地方。 首先,PCA是一种无监督的..


线性判别分析的原理与实践

介绍线性判别分析(Linear Discriminant Analysis, LDA)是一种有监督式的数据降维方法,是在机器学习和数据挖掘中一种广泛使用的经典算法。LDA的希望将带上标签的数据(点),通过投影的方法,投影到维度更低的空间中,使得投影后的点,按类别区分成一簇一簇的情况,并且相同类别..


Hexo 添加 MathJax 支持

背景介绍HEXO是一个基于Node.Js的静态个人博客软件,可以将自己写的Markdown形式的文章渲染成静态网页。通过和Github结合,可以很方便的搭建自己的博客,具体可以参考这篇文章搭建。 在我们写博客的时候,难免要遇到公式,尤其是在写一些理论性比较强的博客的时候,这个时候我们就需要在网页..


Ubuntu14.04 搭建 IPSec VPN

背景现在PPTP-VPN已经不安全了,虽然搭建PPTP服务很简单,安全对于我们一般用户来说也不说很在意,但是比较麻烦的是MAC OSX以及IOS的最新版本已经强制将PPTP服务从系统中移除,无法使用之前便捷的VPN服务,因此搭建一个新一代安全的VPN服务还是很有必要的。 L2TP/IP..


Ubuntu系统配置篇

基本配置有一些软件和事情基本上装完系统是必须需要装的,个人的习惯如下 sudo apt-get install updatesudo apt-get install g++ vim ssh-server screen iftop gitsudo apt-get dist-upgrade #升级..


小米路由器Mini配置汇总

刷入 Openwrt小米路由器要刷openwrt的话,主要分成以下几步: 首先去小米路由器官网下载最新的开发版固件,把路由器固件升级成开发版系统,只要在你的路由器设置菜单里面选择手动升级系统即可,具体请参考这里 刷好开发版后,用手机连接路由器,下载小米路由器APP,安装打开,按步骤绑定你的路由..