Luyu Huang's Blog
  • Home
  • Archives
  • Tags
  • Links
  • About
  • Feed

详解寻路算法(2)-生成图

1. 引言 上篇文章 中主要讲解了 A* 算法. 然而 A* 算法只是一个图搜索算法, 我们在游戏中的地图通常是用一些不规则图形定义的一片行走区域, A* 算法并不能识别这样的地图. lol 因此我们要做的工作就是把一张这样的地图抽象成可用邻接矩阵或邻接链表表示的数学上的图 . 本文介绍两种方法, 可视图(visibility graph) 法和 导航网络(Navigation Meshes
September 28, 2019
#algorithms #featured

编辑距离

题目源自Leetcode: 编辑距离-leetcode 给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 示例: 输入: word1 = “horse”, word2 = “ros” 输出: 3 解释: horse -> rorse (将 ‘h’ 替
September 23, 2019
#algorithms #leetcode

详解寻路算法(1)-图搜索

1. 引言 寻路算法广泛应用在各种游戏中. 寻路算法要解决的问题是, 给定一个 “地图”(定义可行走区域), 一个起点, 和一个目标点, 求起点到目标点的最短路径. 解决寻路问题是一个复杂的过程, 涉及到若干个算法. 大体可以分为两个步骤: 1. 把 地图 抽象成 图. 这里的图指的是数学上的图 ; 2. 对图进行搜索. 相比图搜索, 把地图抽象成图通常会比较复杂. 这篇文章先介绍介绍图搜索算法.
September 22, 2019
#algorithms #featured

牛顿迭代法求平方根

1.先说结论 可这样求得: 令 为任意实数, 执行以下迭代式: 迭代若干次, 当 小于想要的精度时便可停止迭代. 最终的 便可视为 . 根据 (1) 式我们可以很快写出求平方根的代码: 123456789def sqrt(a): x = 1.0 while True: pre = x x = (x + a / x) / 2 if ab
September 17, 2019
#math

在Lua中使用装饰器

引言 使用过 Python 的同学都会喜欢上 Python 的装饰器. 它提供一种语法, 对函数进行”声明”: 123456789def decorator(f): def wrapper(x): print 'call %s' % f.__name__ return "The 2nd power of {0} i
September 15, 2019
#lua

调和级数的渐进表示

令 为第 n 项调和数 证明 是 的 证明 如下图所示: img 可以看作图中蓝色阴影的面积; 而橙色部分的面积则可以看作函数 的积分 . 因此有 证毕.
September 13, 2019
#math

跳跃游戏

题目源自Leetcode: 跳跃游戏II-leetcode 给定一个非负整数数组, 你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃次数到达数组的最后一个位置. 示例: 输入: [2,3,1,1,4] 输出: 2 解释: 跳到最后一个位置的最小跳跃数是 2.   从下标为 0 跳到下标为 1 的位置, 跳 1 步, 然后跳 3 步到达数组
September 12, 2019
#algorithms #leetcode

在Jekyll中使用LaTeX

我准备用 Jekyll + Github page 搭建自己的技术博客. 但是有个问题, 技术文章中不可避免地需要使用到数学公式, Jekyll 原生的 Markdown 解释器总是不能很好地使用 Latex. 通过查阅资料, 我最终解决了这个问题. 下面是我的做法: 禁用 Kramdown 自带的公式解释器: 在 _config.yml 中加入: 12kramdown: math_engin
September 12, 2019
#tools

四元数描述旋转

先看结论: 对于任意坐标 , 我们希望绕旋转轴 旋转 度, 其中 x, y, z 的平方和为1. 那么: 令四元数 得到 其中 是 的逆, . 这时 是形如 的四元数, 实数部分必然为 0 . 坐标 即是旋转后的坐标. 将来(有空的话)我会补上详解. 强烈推荐去看参考资料列出的视频, 可以说讲得非常直观形象, 可能一遍看不懂, 多看几便就好了. 参考资料: - 四元数的可视化
August 10, 2019
#math

从分治策略到动态规划,再到贪心算法

引言 分治, 动态规划和贪心算法, 是算法设计中非常重要的三种思想, 它们各不相同, 却又息息相关. 本文会介绍三种思想之间的共同点和不同之处, 并且列举一些典型算法的例子, 试图探索算法设计的一般思路. 分治策略 我们先来看比较熟悉的快速排序. 快速排序是一个非常典型的分治策略算法. 它采取的方法是把数组中的某一个数移动到数组中的某一个位置, 使得它前面的数都小于它, 它后面的数都大于它. 然后
February 9, 2018
#algorithms #featured
1…6789

Search

© 2025 Luyu Huang's Blog, Powered by Hexo Fluid