Tag: 学习笔记

[机器学习] 用 MySQL 来演示 KNN算法

机器学习这几年越来越火, 特别是相关算法五花八门, 但最有名的就那么几种, 而在这几种中, 要数KNN算法最为简单, 高效并且有鲁棒性 (Robustness). 我们先来看一问题: 已知正方形和三角形的归类, 请问绿色的圆是属于三角还是属于正方形? 这里的KNN 指的是 K-nearest neighbour 翻译过来就是 K个最近的邻居, 如果我们指定K=3, 那么和绿色圆最近的是2个三角形和1个正方形, 所以按多数为主的标准, 我们预测这个圆属于三角, 相反, 如果K=5的情况, 和圆最近的有3个正方形和2个三角形, 这时候我们就按多数投正方形. 用 MySQL 来演示 KNN算法 我们先创建一个表含有两个字段x和y, …

软件工程师数据库面试技巧之 SQL中的第二名记录

现在最吃香的工程师是 全栈工程师 (Full Stack), 因此你除了要好的算法数据结构知识外 你还需要懂数据库等计算机知识. 有人说, SQL好简单, 其实SQL也可以考考你的逻辑, 比如有这么一个简单的 (含有两个字段, 三行记录) 的关系表 (假设表名为 Employee). 对了, 数据工程师/Data Engineer, 还有相关的一些职位: Machine Learning Engineer/机器学习工程师等 都会需要面试SQL. +----+--------+ | Id | Salary | …

软件工程师面试技巧之 如何检查数独的有效性

前不久写的这个 软件工程师面试技巧 的系列, 朋友很喜欢, 所以我打算把我毕生所学(哈哈)整理整理分享于大家,望喜欢.另:我觉得:分享就是一种再学习的过程. 去年 Google 的面试题 – 打印消息 软件工程师面试技巧之 使用哈希表降复杂度 给定一个数独,我们要检查是否有效.一个有效的数独横的竖的都只出现1-9的数字各一次,并且9个小宫格里的数字也只出现1-9各一次. 你能快速的告诉我以下是否是个有效的数独么? 我们只需要检查给定的数独中已经填好的数字.最好的方法就是通过 C++中 STL 的 unordered_set (未排序的集合) 来保存已经出的数字.记得检查下一个9宫格或者行或列的时候清空集合便可. // https://justyy.com/archive/4998 class Solution { public: bool isValidSudoku(vector<vector<char>>& …

去年 Google 的面试题: 打印消息

去年我参加了 Google 的初面(电话面试), 可惜没有通过. Google 瑞士的一个软件工程师打电话面试, 电话面试就考了一道算法题, 虽然我也准备了近一个月的时间, 但是我回答的并不完美. 虽然和我联系的Google 是在伦敦, 但是面试的时候手机上显示的是 +41 电话 来自 Google 瑞士, 整个面试大约45分钟. 题目是: 给了一些消息 和对应的日期和时间, 如果消息并不在最近10秒钟内打印过 那么就打印. 同时有可能多条消息到达(1秒之内). 就这么一个题目并没有指定接口, 而我们也不需要把所有消息都保存起来, 并且我们知道 这个 打印函数可能一秒内被调用多次: …

单反照片拍出来模糊的几个原因

单反照片拍模糊的原因可能包括以下几种:首先是对焦问题,比如对焦点没有对准主体或使用了错误的对焦模式。其次是快门速度太慢,导致拍摄时手抖或被拍摄对象移动,出现运动模糊。此外,镜头或者传感器可能有污渍,影响画质。最后,如果光圈过大(如F1.4、F1.8),景深太浅也可能导致部分画面失焦。解决这些问题,可以检查对焦设置,合理调整快门速度、光圈大小,并保持镜头和相机的清洁。 经常单反照出来的照片是糊的, 还好现在电子技术很强大 可以照很多张 糊的就删掉就可以, 不会增加照片处理的成本 (不用洗出来 再挑). 一般来说 单反照出来糊的有几个原因: 快门速度过慢 slow shutter speed 单反的安全速度是焦距的倒数, 如果使用50mm镜头, 快门速度就不得低于1/50秒, 同样在使用80mm镜头时速度不得低于1/80秒, 否则照片就有可能糊. 光线太暗 光线太暗如果快门太快照片就会糊, 所以在光线暗的情况下可以通过 感光度ISO 或者延长快门时间来补偿光线. 焦点不在拍摄物体或人身上 poor focus 单反得自己对焦, 特别是在大光圈的情况下 …

HTML5 中的 detail 模签 及 jquery 的实现

HTML5 中新添加了一个标签 detail, 用法举例如下: <details> <summary>小赖子的英国生活和资讯.</summary> https://justyy.com </details> 如果你的浏览器支持HTML5并且支持这个标签的话 显示结果如下 (由于AMP不支持 details 和 summary 标签 所以自行脑补, 其实点击 ▶ 才会显示/隐藏 下面的文字): ▶ 小赖子的英国生活和资讯. https://justyy.com 根据w3school, 微软的IE/Edge浏览器暂不支持, 所以估计得用一个简单的javascript (Jquery) 来 toggle …

R语言入门之 – 如何通过Monte Carlo来计算 PI?

上次开始步入R语言的世界, 感觉R还是挺简洁强大的. 学一门程序最好的办法就是敲代码, 敲例子. 在工作生活中如果遇到需要敲代码的时候就得问问自己能否拿R语言来解决? 这样能更好的进步. 我们都知道圆周率可以通过随机在一个正方形(坐标X/Y均为0到1)撒足够多的点. 统计一下点在1/4的圆内(半径为1)的个数和总的撒点个数 这个值就会很接近 . 因为圆的面积公式为 这种方法也称之为蒙特卡罗方法, 是一种随机, 统计的方法. 我们可以通过 runif 来生成随机的点, 参数指定点的个数, x=runif(100000) y=runif(100000) 每个随机值是在0到1之间的浮点数(也可以指定 min=0,max=1). 然后可以把长度放在另一个向量里: z=sqrt(x^2+y^2) 这时候我们只要统计出这个z数组里小于或等于1的个数即可. R语言里的 which 函数返回了数组里满足条件的 索引值, …