在之前发的贴: 软件分享 – 智慧中国象棋 (Chinese Chess) 有朋友就问我, 你这到底是怎么实现的呀? 在我看来, 有两种算法来实现棋类博弃(中国象棋, 国际象棋, 五子棋等等). 这些棋类博弃的游戏一般有以下特点: 两人轮流玩 棋盘上的信息都是公开的 棋手的目标是相反的, 一个取最大, 另一个取最小. 比如象棋中对棋盘的估值无穷大为对黑方执子有利(黑方胜)而无穷小则为对红方有利(红方胜). 模式化的棋类算法 第一种实现方式(就是我12年前的实现方式), 也是最为传统的实现方式, 就是搜索+剪枝. 搜索是在搜索树上(最大最小数 min-max tree), 树的根节点是棋盘的初始状态, 然后比如红方走一步(目标取最小), 搜索树就往下走一层, …
最近在刷题, 倒不是为了找工作, 主要是为了练练脑子, 日子过得太舒服, 人脑不动容易变笨. 程序员应该都了解并能熟悉使用 Hash 哈希表, 哈希表的插入和查找时间复杂度是O(1), 空间复杂度是O(N). 我们来看一道简单的面试题: 给定一个数组,找出相差为2的数对,比如: {1, 3, 5, 6, 9} 输出为: (1, 3), (3, 5) 拿到这题的时候 第一感觉是 暴力是否可行? 暴力搜索 复杂度为 O(N2), 大概代码如下: …
媳妇 @happyukgo 其实挺反感我给她拍照片的, 但主要原因是 我经常把她拍得很丑, 而我除了会用美图秀秀简单的滤镜之外就不会一丁点儿的PS技术. 我家孩子 Eric 很爱臭美, 每次看着我拿相机, 总会让我 “Take a picture”, 然后各种摆姿势做鬼脸, 又很兴奋的说 “Can I see, can I see..” 我姐上周来英国, 硬是要扔掉一些我不用的东西 (断舍离), 有一些7年前的甚至更旧的东西 我都保留着, 原因很简单: 我怀旧. …
世界上有两种IT公司, 一种是像谷歌 FACEBOOK这种以技术为先驱的对技术攻程狮待遇可以超过管理层的公司, 另一种就是商业模式优先, 比如啥挣钱就做, 而写代码的待遇一般不会高于管理层. Google 允许员工可以有一部分时间搞搞自己的项目 (比如 Gmail 就是员工业余时间业余项目搞出来的), 在大多公司, 特别是人力不足的情况下, 码农只能按照需求写代码, 甚至代码都得按到规范来写, 很多时候扼杀了创造力. 30多岁还在写代码, 没有任何大公司背景的我很迷茫. 就像我自己说的, 这两类公司其实可以通过面试的类别就可以区分开来. 以技术为先驱的公司面试的题目大多是算法, 设计. 而以商业模式优先的公司大多会需要掌握一门技术很具体的框架或语言(在工作需求文档 Job Specs): 比如招C#程序员需要懂 WPF, WCF或者LINQ. 我接触过一些面试, …
上周我姐过来一看我在英国混得这么惨而且教育孩子完全就是基本放养, 一顿给我痛批. 让我好像梦中惊醒一般. 我已经33了, 已经感觉到了事业上接近天花板的年龄, 别人可能会觉得, 也许我一辈子也就这样了. 但是我孩子的潜力是无限的, 而且这正是培养孩子塑造孩子良好习惯最关键的时候: 从小抓. 现在摆在我面前的那件事情需要改进: 一是让自己的事业更上一层, 二是把孩子教好. 如果精力有限只做一件事, 那么选择把孩子教好. 因为我可不想孩子以后啃老, 再过十几年, 如果我两孩子都上剑桥大学, 差一点如清华北大, 那么我和我媳妇 @happyukgo 日子到时候该多轻松啊, 多么浅显的道理. 孩子有出息, 父母骄傲. 很快我们就要拼娃晒娃了: 三十年前看父敬子, 三十年后看子敬父. 我姐看着 …
前不久 朋友从谢村过来送了我一猪大腿(风干6到18个月), 原产是西班牙的, 风干真空保存. 包装上写着保质期12个月, 里面自带刀具(架). 这才是抱大腿的正确姿势! 实在是很重, 这么一大块肉, 做起来也挺麻烦. 据网上查得: 得先切片, 然后水煮再蒸干保存食用. 就怕一下子吃不太完浪费了, 可惜肉在英国, 要不然就请你们过来一起食用了(机票不包哈) My friend gave me this as a “present”. It is 6.5kg which is …