AI算法 每日算法 — 使用java实现猜数字:Ulam容错搜索与谎言容忍最优提问策略 一、当猜数字的裁判会说谎 猜数字是最朴素的二分搜索练习:心里想一个 1 到 N 之间的数,每问一次“是不是大于 x”,答案把候选区间砍半,⌈log₂N⌉ 次必然猜到。...
AI算法 每日算法 — 使用java实现糖果传奇CandyCrush:三消局面枚举与连锁消除评分 《糖果传奇》里最让人上瘾的瞬间,是随便滑一下突然连续炸了七八波。对玩家是爽点,对引擎就是一道很干净的组合优化题:给定一个 8×8...
AI算法 每日算法 — 使用java实现璀璨宝石Splendor:资源约束下的贪心枚举与购买序列优化 《璀璨宝石》在桌游圈的地位有点像算法题里的"背包问题":规则两页纸能说完,想赢却要算很久。玩家用宝石代币买发展卡,卡片提供永久宝石折扣,最终靠"声望点数 +...
AI算法 每日算法 — 使用java实现将棋Shogi:成金升变判定与打入落子搜索 将棋(Shogi)是世界上最接近"纯搜索问题"的棋类之一。它和象棋最大的不同在于持驹打入(持ち駒):吃掉的敌方棋子可以变成自己的"手牌",随时打回棋盘任意空格。...
AI算法 每日算法 — 使用java实现肯肯:精确覆盖建模与DLX舞蹈链求解 一、从肯肯说起 肯肯(KenKen,又叫 Calcudoku、贤者之数)是日本教师宫本哲也发明的一款算术逻辑谜题。它的规则只有两条: 在 n×n 的棋盘里填入...
AI算法 每日算法 — 使用java实现推箱子:束搜索与启发式状态评估 一、推箱子的搜索困境 推箱子(Sokoban)的规则人人都懂:小人只能推、不能拉,把每个箱子推到目标点上。但它的复杂度是 PSPACE 完全的——不是 NP,是...
AI算法 每日算法 — 使用java实现井字棋:策略迭代与最优策略收敛 一、为什么用井字棋讲强化学习 井字棋(Tic-Tac-Toe)是强化学习教科书里最常见的入门沙盘,原因有三个: 状态空间可穷举。全部合法局面只有 5478 个(其中 4520...