- 博客(6)
- 收藏
- 关注
原创 孔明棋算法
背景 先来介绍下孔明棋吧,它是法国跳棋独立钻石在中国的别称,英文叫做“Pegged”。简单介绍下玩法吧,常见棋盘如下:走棋规则如下:图中的黑点为有棋子,白点为无棋子。 算法介绍 这个算法其实整个程序不是很难,但是针对程序的设计很容易走弯路,导致算法复杂度增加。初次尝试时,我当时考虑到这一问题,随着棋盘复杂度增加,白点越来越少,因此我把白点作为参考点,然后遍历所...
2019-03-02 22:42:18 6295
原创 RMI简单实现
背景 RMI(RPC),是一种远程过程调用。这里对其概念就不赘述了,简单说下个人理解。远程调用,便是在客户机端远程调用服务器端的方法,并将结果返回给客户端。这样的话,客户端无需关心方法的具体实现,只需注意调用的参数等。 实现思路 1.其实这里可以分开思考,最外面的框架无非是,客户端通过代理去执行方法。这也是rpc给人最浅层的感受。就感觉方法只是在本地执行一样。2.然后再加...
2018-10-29 14:06:05 224
原创 初探AOP内部实现
背景 想要了解Spring框架,那可以说AOP(面向切面编程)是必须要了解的。为此,查阅了很多资料,看过了很多网上的很多介绍,还是没有给我满意的答案,最终在一名老师(铁血教主)的指导下,才真正了解到了内部看似复杂无比的架构。AOP在如今的很多大型项目中都有涉及,主要为了解决添加日志,安全检查,权限管理等的问题。简单来说,就是利用代理,对某些方法的执行进行拦截或者管理。 原理 AO...
2018-10-27 15:22:05 255
原创 巨大数的四则运算
目的 巨大数实现的意义在于,当需要计算的数据,超出计算机可表示范围,那么按照平常的计算方法便会无能为力。这时,便需要一种可以解决更大位数计算的方法,也就是巨大数四则运算所存在的意义。而且我们的巨大数还可以为小数,因此起到增加计算精度的作用,在一些需要对数据进行精确计算的科研实验中,便起到巨大的作用。以int为例,当超过-217483648~2147483647范围数字计算机就不能正常表示。...
2018-08-26 21:37:26 1213 1
原创 贪吃蛇项目总结
贪吃蛇的实现,实现了几遍。从开始的举步维艰到最终的思路清晰,都是不容易的。这里不想针对整个工程大谈。只针对里面的三点进行叙述,便是产生食物时,用到一个算法,也叫洗牌算法,以及整体上的一维数组的使用。而其中的一维数组的使用,而不是二维数组。这里也是为了方便编程,以及提高数据的处理速度。其实在我看来,数组的灵活使用,其实就是下标的灵活使用。也就是说,玩数组就是玩下标。再有一点便是程序的整体上,很多人有...
2018-08-17 15:15:17 3889
原创 形参与实参
这里主要用“交换两个数”的例子作叙述:话不多说,先上个新手都容易犯的错误:#include<stdio.h>void exchange(int,int);void exchange(int one,int another){ int tmp; tmp = one; one = another; another = tmp;}int ma...
2018-04-30 12:38:38 168
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人