Category: 编程

回忆起20年前大学时期的学生生活(2003-2004电脑长什么样?)

2003年,我参加了高考,暑假后便到了北京,9月份入学中国农业大学国际学院(ICB)。不过当时我是通过“计划外”入学的,因为高考成绩没能达到农大的录取分数线,所以是自费进入这个中外合作办学项目的。大一在国内学习,大二大三则出国。 2003-2004学年是我计算机知识突飞猛进的第一个阶段。那时我非常专注于学习,学院还专门为我和另一位同学请了一位外教。我淘了一台二手老电脑,装了Windows 95/98系统。其他同学都在玩游戏,而我的老电脑只能用来学习和编程。我的宿舍床上堆满了计算机书籍,大多是从二手书市场或者地摊淘来的。那个时候我可能一个学期都没换过被子,床上卫生环境可能很糟糕。 学院有专门的计算机实验室,我们当时学习的是Java,Applet编程还很流行。我记得那时C#刚刚问世。我觉得电脑课上的内容很简单,于是外教给我布置了一个特殊的题目,并承诺如果我能完成,期末考核就给我A+。最后我确实做出来了,他也信守承诺给了我A+。 英文:The Computers at Early 2000s 本文一共 354 个汉字, 你数一下对不对. 回忆起20年前大学时期的学生生活(2003-2004电脑长什么样?). (AMP 移动加速版本) 赞赏我的几个理由. ¥ 打赏支持 扫描二维码,分享本文到微信朋友圈

回溯 = 深度优先搜索(DFS) + 剪枝

“回溯 = DFS + 剪枝” 是一个对回溯算法简明且直观的描述。要理解这一点,我们可以先拆解这个等式中的几个关键概念。 深度优先搜索 (DFS) DFS(Depth-First Search)是一种图或树的遍历算法,它从根节点开始,沿着一个分支深入到尽可能远的节点,直到达到叶子节点或无可拓展的节点,然后回溯到上一个节点继续搜索其他分支。这种搜索策略自然地适合解决需要遍历所有可能状态的问题,如组合、排列问题等。 剪枝/Pruning 剪枝(Pruning)是指在搜索过程中,提前排除不符合条件的分支,以减少计算量。剪枝的主要作用是在搜索的过程中,避免无谓的计算。通过某些条件判断,可以在尚未完全展开某些分支时就停止搜索,从而减少时间复杂度。例如,当我们知道一个分支肯定不会产生有效解时,可以提前终止该分支的搜索过程。 回溯算法/Backtracking 回溯算法可以看作是深度优先搜索DFS的一种特例或具体应用。它采用DFS的思想,在搜索的过程中尝试每一种可能的选择(通常是通过递归实现),并在发现某个选择不符合条件或已经无法产生有效解时,及时回退(即“回溯”),然后继续尝试其他选择。这种“试探—回溯”的过程就构成了回溯算法。 结合三者的理解 DFS 为回溯算法提供了基本的搜索框架,即从起点开始沿着一个分支深入探索; 剪枝 则是在DFS基础上增加的优化步骤,目的是减少无效状态的探索。 因此,“回溯 = DFS + 剪枝” 是对回溯算法的一种总结。它表明回溯算法不仅仅是简单的深度优先搜索,还通过剪枝来提升效率。剪枝使得回溯算法在解决很多问题时比单纯的DFS更加高效,尤其是在解空间很大的情况下,剪枝能够大幅减少计算量,从而使得问题求解变得可行。 例子:Alpha-beta 算法剪枝 Alpha-beta 剪枝可以看作是一种回溯算法,它通过剪枝技术增强了深度优先搜索算法。 …

刷题之路: 刷题改变人生

2018年8月20日,我第一次购买了力扣会员,花费159美元,开启了刷题之路。两天后,8月22日,我去了伦敦参加亚马逊的面试。进入微软(剑桥研究院)后,我已经不再需要刷题,但我依然认为,刷题是对自己最有价值的投资。 第六年力扣会员了,依然觉得这个是对自己最好的投资。 本文一共 149 个汉字, 你数一下对不对. 刷题之路: 刷题改变人生. (AMP 移动加速版本) 赞赏我的几个理由. ¥ 打赏支持 扫描二维码,分享本文到微信朋友圈

为博客WordPress添加两个显示十大文章的短指令 shortcode

每年年底看着很多博主都会列出今年最佳十大文章啥的作一个总结,这事以前我也干过,不过以前是登陆服务器,连接数据库,然后跑几个SQL指令,得到结果,然后拷贝到文章中,很麻烦,而且这结果还是当下的,当SQL跑出来后结果就静态了。 其实,可以通过 shortcode 短指令的方式把这个功能添加到 wordpress 博客中。 WordPress 短指令:获得十大评论最多的文章 这个短指令有几个参数可以配置: “year”:帖子年份,可选,如果没有指定年份,则是基于当年博客中的所有文章来统计。 “type”:这个是HTML列表的类型,默认是 ol(ordered list) 也可以选择 ul(unordered list) “urltype”:博客链接的方式(默认是short),可以是 full 也可以是 short。这里提供了两种方式,但实际上你可以稍微改一下代码自定义 permlink 的格式。 “count”:返回帖子的数目,默认是10个。 以下就是获得十大评论最多的文章的wordpress shortcode PHP函数,您需要复制添加到主题的 functions.php 文件中。 function …

微软终于弃用VBScript, 一个时代结束了

VBScript是我最喜欢的编程语言之一,因为其简单的语法,性能稳定,而且在Windows上和COM组件结合,可以做很多事情,Windows管理员在Powershell出来之前用VBScript来完成各种管理工作。VBScript也是我早期学会的编程语言之一(还有LOGO海龟作图,FoxBase数据库,Pascal等)。现在我的任务栏还有VBS Editor,因为我很有时候需要验证些数学或者其它事情,我就会用VBScript来写。比较复杂的我就会用Python。 据说比尔盖茨对Basic语言情有独钟,因为他老人家当年就是设计并开发了Basic语言,后来一直在Windows产品中支持Basic,比如Visual Basic,VB for Application,ASP等。 2023年10月份也就是这个月,微软发布声明,说弃用VBScript了。因为现在,Powershell更为强大,可以完全取代VBScript。VBScript的语法简单很多,而且已经十几二十年没有更新了,已经跟不上主流语言的各种语法糖和框架,和COM结合也带来了一些安全问题,比如当年VBScript来写一些恶意脚本还是非常容易的。 可以在微软的这个页面看到: In future releases of Windows, VBScript will be available as a feature on demand before its removal from the operating system. …

添加短代码(Short Code Function)以在 WordPress 帖子或页面中包含任何 PHP 或 HTML 文件

有时候, 我们想要在WordPress的帖子或页面中包含 PHP 或者 HTML 或者其它外部文件, 这时我们可以使用以下PHP代码在WordPress中先添加一个短代码Short Code Function功能: function include_php_in_wordpress($atts) { extract(shortcode_atts( array( 'src' => '' ), $atts)); if ($src!= '') { if (is_file($src)) { return @file_get_contents($src); } …

怎么样计算STEEM区块链的上线率(UpTime)和宕机时间(DownTime)

判断一个区块链是否靠谱有一个指标就是看链跑的时间久不久, 还有就是上线率/Uptime和宕机时间/Downtime, 有点类似计算服务器的上线时间. 不靠谱的链一般没几多久就停了(Halted). STEEM区块链不算新链了, 已经跑了有7年之久, 我很好奇STEEM链的上线时间和故障率, 本文就来计算一下. STEEM在过去因为链的BUG停过几次, 我记得有一次是STEEM在硬分叉的时候引起了新的资源计算模型, 但有BUG, 导致链停了, 虽然当时Steem Inc组织程序员紧急改BUG, 再号召见证人同时重启链, 不过那几天折腾过程中停了有2-3次吧. 比特币BTC据说到现在为止历史上一共停过两次. 创世纪块和时间 Steem Genesis Block and Time 每条区块链都有一个创世纪块, 也就是第一块, STEEM上的创世纪块是在 2016-03-24 16:05:00. 产生一块所需要的时间 …