算法设计
gouki04
面向兴趣编程
展开
-
高效遍历一个数组的所有排列组合情况
高效遍历一个数组的所有排列组合情况1. 前言本文主要是基于Aviad P.的2篇文章:A C# List Permutation Iterator,A C# Combinations Iterator。分别介绍了如何遍历排列组合情况。使用的算法不需要额外分配空间,所以比较高效。2. 实现public static class Iterator{ private static vo...原创 2019-11-12 15:45:52 · 3878 阅读 · 0 评论 -
高效生成均匀分布的点:快速泊松碟采样算法实现(Fast Poisson Disc Sampling)
泊松分布采样算法(Fast Poisson Disc Sampling)前(fei)言(hua)最近在看一些随机地图生成算法,涉及到生成Voronoi图,这需要提前在一个平面内随机生成一堆的点,这些点还要满足随机而且尽量平均分布在平面上。一般文章都提到采用Lloyd Relaxation算法,不过这个算法比较复杂,消耗也比较大,后来看到这个泊松分布采样算法,也是用于生成一堆平均分布的点的,而且...原创 2019-08-29 18:27:54 · 5874 阅读 · 4 评论 -
算法设计 -- VC控制台绘制“棋盘覆盖问题”的结果棋盘
呵呵~~自从上次的模拟汉诺塔后~发现用控制台来模拟或实现算法设计里的算法也是一件很有意思的事~这次是棋盘覆盖问题~由于书上只是简单的把算法说了如果能看到结果的棋盘可能会更好理解一点。 这里先把题目说一下:在一个2k x 2k ( 即:2^k x 2^k )个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在棋盘覆盖问题中,要用图示原创 2009-09-18 00:02:00 · 1783 阅读 · 2 评论 -
浅谈RPG Maker XP自动地图元件的绘制原理
浅谈RPG Maker XP自动地图元件的绘制原理序:最近刚好想写个类似RMXP的地图编辑器,遇到的第一个问题就是自动地图元件的绘制问题。老实说,我不知道这东西到底叫什么(特别是英文叫什么),只知道RMXP翻译过来就是自动地图元件,而且魔兽的地图编辑器也用到这种技术,但我在网上却始终找不到相关的资料。其绘制原理其实很清晰,就是用户给出指定规格的地图元件资源,编辑器将其拆分,在绘制时再根原创 2011-12-27 20:51:18 · 10930 阅读 · 3 评论 -
魔兽争霸自动地图元件的绘制原理
魔兽争霸自动地图元件的绘制原理序:本文主要介绍一种简单高效的自动地图元件的绘制方法,基本的原理是基于CodeProject的作者为Colin Vella的一篇文章:http://www.codeproject.com/KB/game/Autotiles_Algorithm.aspx#_comments 该文章介绍的方法非常简单,而且很高效。本文会先讲述此方法,然后在此方法的基础上,介绍魔兽原创 2012-01-17 15:20:00 · 12514 阅读 · 12 评论 -
C++实现的委托机制(2)
C++实现的委托机制(2)1.实现任意参数的函数委托按上一篇文章的方法,你已经可以使用无参数的函数委托了。当然,这远远不够。要实现任意参数的函数委托,这里的任意参数包括任意个数和任意类型。任意类型这个容易解决,使用模板就行,但任意参数个数呢?注:最终的实现代码可以原创 2011-10-08 14:40:17 · 2136 阅读 · 1 评论 -
C++实现的委托机制(1)
C++实现的委托机制(1)1.引言下面的委托实现使用的MyGUI里面的委托实现,MyGUI是一款强大的GUI库,想理解更多的MyGUI信息,猛击这里http://mygui.info/最终的代码可以在这里下载:http://download.csdn.net/detail/gouki04/3641328 我们的目标是要实现一个跟.NET几乎完全一样的委托,使用简单,支持多播,可以添...原创 2011-10-08 14:36:06 · 4410 阅读 · 1 评论 -
C++实现的委托机制(3)
C++实现的委托机制(3)1.引言按上一篇文章的方法,你已经可以使用任意参数的函数委托了。这里介绍下MyGUI实现的两个辅助类,CDelegate类和IDelegateUnlink。如果你不为了深入了解MyGUI的委托实现,可以跳过此处。CDelegate即为单委托,原创 2011-10-08 15:16:59 · 2450 阅读 · 2 评论 -
北京大学PKU在线测评系统 3078题 Q
原题:QTime Limit: 1000MS Memory Limit: 65536K Total Submissions: 1188 Accepted: 838 DescriptionYou've got a queue. And you just got to mess with it.Given a queue of items and ...原创 2010-03-20 10:00:00 · 2036 阅读 · 0 评论 -
回溯法 -- 装载问题
装载问题 有一批共n个集装箱要装上2艘载重量分别为c1和c2的轮船,其中集装箱i的重量为wi,且装载问题要求确定是否有一个合理的装载方案可将这个集装箱装上这2艘轮船。如果有,找出一种装载方案。装载方案。(1)首先将第一艘轮船尽可能装满;(2)将剩余的集装箱装上第二艘轮船。将第一艘轮船尽可能装满等价于选取全体集装箱的一个子集,使该子集中集装箱重量之和最接近。由此可知,装载问...原创 2009-10-13 20:43:00 · 6511 阅读 · 0 评论 -
算法设计 -- VC控制台模拟“汉诺塔”移动过程
刚开始学习《算法设计与分析》里面的汉诺塔问题的求解算法简直让我无语了··用3个语句就把这么复杂的问题解决了相信很多人跟我一样,对其中实际的移动过程还是不太清楚·我就自己写了这个模拟汉诺塔移动过程的程序~~里面用数字代替圆盘~~数字越大代表的圆盘就越大 我没写可供外部输入的函数,大家可以直接修改程序里的全局数据里的数据就可以了主要可以修改两个,num为圆盘数,建议大家...原创 2009-09-17 23:11:00 · 1637 阅读 · 0 评论