0%

渐变头图 上一篇博客介绍了本项目总体情况, 这一篇来介绍一下我实现的自动扫雷 AI 算法. 本 AI 胜率比网上最高胜率的 AI 差 0.5% 左右. 不过本 AI 也不是没有优势, 它运算速度很快 (强行有优势 (ˉ▽ ̄~)), 平均 42 毫秒可以扫完一局 Win XP 规则下的专家难度. 这篇博客会介绍一下我的思路和踩过的坑, 也会列出一些关于胜率的数据. 希望能够帮助其他萌新入个门. 项目已经开源, 代码也写了注释, 链接放在文章最后. 先再次把最终成品的 AI 胜率等指标罗列一下: 指标 Win XP 规则测试结果 Win 7 规则测试结果 测...

渐变头图 东西是疫情期间做的, 但由于拖延症博客一直拖到现在都没写, 半年了再不写出来自己都要忘光了 _(:з」∠)_. 起因是疫情期间蹲家里, 就迷上了扫雷. Win XP 的扫雷程序在高分辨率屏下体验不好, 于是一开始是玩的 Win 10 商店里的那个 Microsoft Minesweeper, 但它区区一个扫雷却还好意思整了那么多广告, 搞得花里胡哨体验还差. 于是一时气愤, 决定自己写一个. 写完之后想着既然游戏本体都写了, 这不乘着气没消顺路再研究研究自动扫雷 AI? 于是又折腾了好一阵子, 终于发现 AI 确实难写... (啊不是), 终于...

啊要出分数线了好紧张. 赶紧复习复习以前学的东西_(:з」∠)_ 竟然写了大半天, 全都忘光了, 怕不是要凉 (/゚Д゚)/ 遗传算法(Genetic Algorithm) 此处使用二进制编码法形成染色体. 种群初始化: 随机将染色体的某些 DNA 置 1, 进行 M 次, 形成 M 个不重复的个体组成第一代种群. 适应度评价: 对每个个体运行适应度评价函数, 区分群体中个体好坏. 并按照一定策略选择出部分适应度高的个体, 作为下一代的父代. 交叉与变异: 对挑选出的父代, 每次随机选择两个染色体, 在一定概率下将两者的某些 DNA 进行交换, 形成两个...

一、高中数学公式复习 \(C_n^m = \frac{n!}{m!(n-m)!}\) \(C_n^m = C_n^{n-m} = C^{m}_{n-1} + C^{m-1}_{n-1}\) \(C_n^0+C_n^1+C_n^2+...+C_n^n = \sum_{i=0}^{n}{C_n^i} = 2^n\) \(C_n^0+C_n^2+C_n^4+... = C_n^1+C_n^3+C_n^5+... = 2^{n-1}\) \(C_n^m+C_{n+1}^m+C_{n+2}^m+...+C_{n+m}^m = \sum_{i=0}^{m}C_{n+...

啊... 又要写毕业论文了... 担心 Overleaf 须要联网有一定风险, 还是打算 本地 TeX Live + Github 版本管理与备份. 安装 TeX Live 2021 用国内镜像下载, 速度快: 清华源 | 华为云源 | 阿里云源. 双击下载的 ISO, 打开 (不用管理员) install-tl-windows.bat, 会有 GUI 安装界面. 我直接便携安装在 D 盘了, 安装出来有 7 个多 G, 语言少选几个可以少安装一个 G, 不过也就一个 G, 干脆全装了. 好家伙装了半个多小时了, 怎么还没装完, 我这硬盘还是 SSD. ...

5649. 解码异或后的数组 异或运算可逆, 所以直接异或回去. 12345678910class Solution { public int[] decode(int[] encoded, int first) { int[] res = new int[encoded.length + 1]; res[0] = first; for (int i = 0; i < encoded.length; ++i) { res[i + 1] = res[i] ^ encoded[i]; } return res; ...

一阵子没打了, 竟然四题都做出来了. 5539. 按照频率将数组升序排序 题解 很暴力地构建 {数值: 频率} 字典, 再很暴力地根据频率构建 {频率: 降序数值列表}. 最后根据频率升序输出. 垃圾代码 1234567891011121314class Solution: def frequencySort(self, nums: List[int]) -> List[int]: mp = {} for n in nums: mp[n] = mp.get(n, 0) + 1 mp2 = {} for k, ...

安装 用 UEFI+GPT 安装, 可以快速启动. 使用 Rufus 制作. 选项如图. Rufus BIOS 设置启动方式为 UEFI. 如果硬盘是 MBR 的, 则安装程序会提示装不了. 此时 Shift + F10 调出控制台, 输入: 1234diskpartlist diskselect disk 0 # 在 list 出来的 disk 里选一个convert gpt 曾经我觉得 C 盘分 100 GB 就够了, 现在感觉还是 200 GB 舒服 (针对我的需求. 比如 WSL、Maven、Anaconda 等等环境都在 C 盘, 还是大一点舒...

5499. 重复至少 K 次且长度为 M 的模式 垃圾题解 略 垃圾代码 123456789101112131415161718class Solution: def containsPattern(self, arr: List[int], m: int, k: int) -> bool: print('ohhh') n = len(arr) if m * k > n: return False for i in range(n - m + 1): a = arr[i : i + m] c = 1 j = i + m while j <...

Java 有两种异常: Checked Exception 与 Runtime Exception. 整理了一下两者的区别: 区别 Checked Exception Runtime Exception 基类 java.lang.Exception java.lang.RuntimeException 捕获 强制 不强制 Checked Exception 的基类是 Exception; Runtime Exception 的基类是 RuntimeException (不过 RuntimeException 的父类也是 Exception). Check...

安装: Win10 商店. 添加 Git Bash 支持 打开设置, 在 profiles -> list 添加以下必须项: 123456{ "guid": "{c169f907-832c-4aa4-9ab3-84a4658b4b93}", "name" : "Git Bash", "commandline" : "C:\\Program Files\\Git\\bin\\bash.exe -i -l", "icon" : "C:\\Program Files\\Git\\mingw64\\share\\git\\gi...

安装 12# graphviz 用于生成图, doxygen-guigraphviz 是 doxygen 的 GUIsudo apt-get install graphviz doxygen doxygen-gui doxygen-doc 也可以从源码编译安装, 源项目是 CMake 项目. 不过源码安装会导致使用 apt 安装的 GUI 找不到 CLI 安装位置, 还是 apt 方便. 清华的 apt 源貌似没有 doxygen, 后来改用阿里云的源就好了. 使用 GUI 程序使用的典型流程 以分析 Doxygen 项目本身为例, 目标是获取其函数调用...

网上的三方教程大部分是 AngularJS, 但我要用的是 Angular, 是 AngularJS 的新版本, 有些东西不太一样. 关键这两者名字太像了, 这框架命名竟然不用版本号命名, 而只是比老版本少了两个字符, 搜索起来太坑了...... 学习使用时使用的环境: - Node.js: 12.10.0 - npm: 6.10.3 - Angular CLI: 8.3.4 以及 Angular 一些包的环境: 12345678Package Version------------------------------------------------...

美化软件 Gnome Tweak Tool: 美化必备 首先肯定是安装 gnome-tweak-tool. 1sudo apt-get install gnome-tweak-tool Dash To Dock 是 Tweak 的一个扩展. 可以从 Ubuntu Software 搜索下载安装 Dash to dock, 然后就能从 Tweak 的 Extensions 标签页下找到它. 主要功能: Dock 图标居中显示; 将 Dock 的 Show Applications 从右侧 / 底部 挪到 左侧 / 上方. 也支持用指令. 比如要将 Show...

制作 U 盘启动 使用 Rufus 制作. 选项如图. Rufus 如图, 因为是要 UEFI 方式启动, 所以分区类型需要选 GPT. 检查硬盘是否 GPT 格式 如果是在 Win 下, 工具很多. 在 Win 下使用 fdisk -l 可展示. U盘启动并安装 Other options 可选可不选. 选择 Something else 以定义安装、定制分区. 以下为一个典型的分区, 分了 efi, /, /home, swap 四个分区, 因为是 UEFI, 不需要分 boot 区.