Category: 算法

随机数独游戏的算法设计 (Sudoku)

给定一个数独(Sudoku), 我们可以使用深度优先搜索算法(DFS), 迭代加深搜索算法(IDS)或广度优先搜索算法(BFS)来寻找可能的解. 反过来, 如果我们要设计一个算法来生成有效的数独, 我们需要澄清以下问题: 生成的数独(Sudoku)必须有可解状态吗? 是的 生成的数独(Sudoku)有多个解吗? 我们可以假设返回的Suduoku只有1个唯一解 生成的数独(Sudoku)的找解难度? 我们可以为此设置一个参数: 简单, 中等或困难 一共有6.671×10^21个有效的数独状态, 如果我们忽略旋转, 镜像状态等重复的状态, 这个数字就降到了5.4×10^9个状态. 我们可以随机生成一个由数字1-9填充的矩阵, 并检查它是否是有效的数独, 但这非常低效, 因为生成的矩阵极有可能不是有效的数独. 设计一个随机数独的算法 为了设计一个有效的算法, 生成一个随机的有效数独, 我们可以采用以下算法: 使用回溯(深度优先搜索)算法来生成一个具有随机性的有效完整数独. 例如, 我们可以随机选择数字, …

谷歌面试题: 迷宫随机生成算法

据说这个是谷歌 Google 的第一轮面试题. 一般这种题目就是: 设计一个迷宫算法 (Design a Maze). 面试中应该先问清楚需求 (Ask Clarifying Questions): 迷宫需要有几条出路? (假定至少1条), 多大的迷宫? 多复杂的迷宫等等. 最容易想到的就是随机生成1和0的地图, 其中1是墙, 0是空路, 不过这种方法生成随机的效率实在是太低, 你可以跑了半天也无法生成一个有效的迷宫, 我们假定有效的迷宫是至少含一条路径. def maze(width, height): m = None while …

浅谈虚拟货币交易所三角套利的算法

高频交易(HFT, High Frequency Trading) 指得是我们可以让程序调用交易所的API 来自动下买单或者卖单, 赚差价来达到挣钱的目的. 常见的高频交易策略有低买高卖, 本文介绍一种常见的三角套利的策略. 高频交易 (HFT) 简介 高频交易 (HFT) 是一种算法交易, 它使用计算机程序在金融市场上快速执行交易. 它是一种自动交易形式, 使用复杂的算法来分析市场数据并以闪电般的速度执行交易. 对冲基金和投资银行等大型机构投资者使用高频交易来利用市场中的微小价格差异. 高频交易者使用复杂的算法来识别和利用这些价格差异. 这些算法旨在扫描市场以寻找潜在机会, 并在发现机会后立即执行交易. 这使得高频交易者可以在价格差异消失之前利用它们. 高频交易者还使用复杂的风险管理技术来限制他们的风险敞口. 通过使用止损单和其他风险管理策略, 高频交易者可以在市场走势对他们不利时限制损失. 高频交易是一项复杂且具有风险的策略, 并不适合所有投资者. 在尝试使用高频交易之前了解与高频交易相关的风险非常重要. …