- 博客(837)
- 资源 (2)
- 收藏
- 关注
原创 所有博客导航
CSDN多年的使用经验告诉我,最朴素的整理方式才是最稳定最便于维护的,毕竟,实在是受够了CSDN过于频繁的格式更新和各种乱码。于是,2020年3月19日,我又重新整理了一遍,把这篇博客完全重写了。主要变化点是:把文章的链接都去掉了,只留下链接文本,而且把各种乱七八糟的缩进和项目列表都干掉了,只在每一个最深的目录统计文件数,免得更新的时候要维护很多数量的一致性,比较麻烦而且易错。2020年10月18日,因为CSDN恶心的限制,一篇文章不能超过64000字,所以我不得不用Markdown编辑器重写这篇博客。同
2020-12-29 01:13:28 9830 7
原创 五子棋人机对战完整代码
目录〇,前言一,五子棋棋盘二,五子棋比赛规则1,行棋顺序2,判断胜负三,重要棋型解释1,五连:2,活四:3,冲四:4,活三:四,禁手规则1,三三禁手2,四四禁手3,长连禁手五,代码解释1,棋子表示2,棋盘表示3,flat技术4,棋型判断和禁手判断4.1 活四4.2 冲四4.3 活35,AI算法6,AI的.........
2018-02-17 10:00:16 58132 100
原创 rust元编程
连接, 6和“2,3,4”之间有逗号连接,用什么连接取决于宏的匹配格式里面写的是什么。而2,3,4匹配的是$($y:expr),*这个类似正则表达式的东西,表示可以匹配任意多个表达式,用,连接起来。上面的$sth:expr表示匹配到一个表达式,expr是表示表达式这个范畴。声明宏是半卫生宏,变量标识符不会造成符号冲突,符合卫生性。声明宏的作用类似于代码替换,匹配语法和match很像。但是在宏内部定义的泛型和生命周期标识符是不卫生的。过程宏又分为函数宏、属性宏、派生宏。rust的宏分为声明宏、过程宏。
2024-03-19 20:30:50 523
原创 魔域枫叶魔方
所谓的中心块,其实就是每一面正中心里面可以看到颜色,是凹进去的,并没有明显的块。首先还是用简单的操作技巧,尽量往接近复原的方向努力,看看可能会遇到什么样的情况。不难推断出,只要把交换这2个三角的方法记录成公式,就一定能解决所有的三角归位问题。6个中心块和8个角块,另外每个面还有构成正方形的8个块(4个椭圆和4个三角)。整体几何形态有2种,一种是正方体,一种是正方体斜着切开成2半,旋转60度。现在只剩黄色和橙色2个正方形没有复原,那么接下来怎么办?即使还没有想好怎么交换这2个三角,我们也。
2024-03-13 23:55:33 350
原创 数组旋转变换分析
其中1,5是一对,2,6是一对,3,7是一对,4,8是一对。假设男生是a b c d e f,女生是a b c d e。此时男生是b c d e f a,女生是c d e a b。男生是b c d e f a,女生是c d e a b。男生是d e f a b,女生是e a b c。屁股下面的x+3和剩下的x+7一定满足差值是4。初始化:[1,2,3,4,5,6,7,8]男生是f a b d,女生是b c e。男生的f和女生的e一定是x+7。男生是b d f,女生是e b。也就是说,剩下的一定是x+7。
2024-02-09 23:12:07 464
原创 极值图论基础
PS:取到最大值的图称为极图,如果有唯一的极图,我们就说满足条件的极图是什么,不需要赘述边数了。定理:对于任意s>=t>=2,存在常数C,对于任意n,以完全二部图Ks,t为禁图的图的边数不超过。存在常数C,对于任意t>=2,任意s>C^t,以完全二部图Ks,t为禁图的图的最大边数为。猜想:对于任意s>=t>=2,以完全二部图Ks,t为禁图的图的最大边数为。以完全图K(r+1)为禁图的n个点的图,唯一的极图是图兰图Tr,n。猜想:对于任意k>=2,以2k个点构成的偶圈为禁图的图的边数为。
2024-02-08 11:08:17 1119
原创 P、NP、NPC、NP困难
如果可以把问题A的解法表述成,先用多项式时间做输入转换,再调用问题B的算法多项式次,再用多项式时间做输出转换,那么我们说问题A可以多项式规约成问题B。这个已经被证明是NPC问题,只要证明了存在一个NPC问题,那么就有很多问题都很容易证明是NPC问题。如果所有NP问题都可以多项式归约到某个问题,则称该问题为NP难问题,也叫NP困难问题。如果P等于NP,那么NPC是NP的真子集,几乎所有的NP问题都是NPC问题。如果一个NP问题是NP难问题,则称为NP完全问题,也叫NPC问题。显然,P问题一定是NP问题。
2024-02-06 11:12:03 374
原创 随机图论基础
一个n个点的无向图,最多有s=n(n-1)/2条边。假设每条边都有p的概率是存在的,有1-p的概率是不存在的,那么一个有k条边的图出现的概率是。
2024-01-31 11:43:34 838
原创 整数流理论
那么,是否存在k流可以表述为:给定一个有向图和一个k阶交换群,能不能找到一个函数,把图的每个边赋予一个权值为1到k的整数,使得对于每一个点,进入该点的所有边的权值之和和离开该点的所有边的权值之和模k同余。他研究的具体问题是,给定一个有向图和一个k阶交换群,能不能找到一个函数,把图的每个边映射到群的一个非零元素,使得对于每一个点,进入该点的所有边的函数值之和等于离开该点的所有边的函数值之和。Tutte证明,是否存在k流和交换群的结构无关,只和k有关。所以,我们只需要考虑整数模k的群即可,这是最简单的交换群。
2024-01-29 20:23:21 411
原创 拓扑图论、常见的图
完全二分图是一种特殊的二分图,可以把图中的顶点分成两个集合,使得第一个集合中的所有顶点都与第二个集合中的所有顶点相连。很显然,主要的效率问题就是,在唯一的while循环里面,有1个从1到n的循环,只为了检索一些特定的目标出来。题目大意就是把图分成二分图,如果不能的话,输出-1,如果能的话,分别输出2个部分的点的数量和点的标号。完全图指的是,对于不同的2点,点A到点B之间恰好有一条边,这样的简单图称为完全图。拓扑图论研究曲面中的图嵌入、图的空间嵌入及作为拓扑空间的图,还研究图的浸入。
2024-01-29 16:27:58 964
原创 rust 泛型、多态
无论是c++ STL还是rust std,里面所有的数据结构都是泛型的,c++和rust的结构体也类似,可以是泛型的也可以是非泛型的。所以,泛型函数内部对T的约束条件,都通过指明T所包含的trait的方式进行说明。Ord特征中并没有eq函数,但是Ord特征间接继承了PartialOrd,所以有Ord特征的类型肯定是可以使用==的。对于绝大部分trait,模板类型都是默认不包含该trait的,需要特征约束才能说明该类型具有该trait。作为泛型参数的常数类型,可以是所有整数类型、bool类型、char类型。
2024-01-27 15:28:15 1400 1
原创 区字棋中的最长非0链
也叫憋死牛棋。规则:棋盘一共只有5个点,双方各2个棋子,还有一个空格。先手必须移动左边的棋子,之后没有限制,2个棋子任意一个移动到空格皆可。无法移动者判负。
2024-01-21 00:24:22 399
原创 2种数控棋
玩家1从数组任意一端拿取一个分数,随后玩家2继续从剩余数组任意一端拿取分数,然后玩家1拿,……每次一个玩家只能拿取一个分数,分数被拿取之后不再可取。如果一开始Alice取了一堆,Bob取了两堆,然后Alice再取两堆。如果他选择2(或者1),那么玩家2可以从1(或者2)和5中进行选择。最终,玩家1(234分)比玩家2(12分)获得更多的分数,所以返回 True,表示玩家1可以成为赢家。给定一个表示分数的数组,预测玩家1是否会成为赢家。所以,玩家1的最终分数为 1 + 2 = 3,而玩家2为 5。
2024-01-19 11:50:01 917
原创 探险家
每个回合先翻n张牌,n是人数,然后出价决定排位,然后依次选一张牌,最后可能探险也可能跳过直接进入下一个回合。牌分为探险牌、技能牌和颜色牌,技能牌要么直接执行,要么换成钱,颜色有红黄蓝三种颜色,用于组建战队。所有探险的战队按照探险目标进行算分,得分最高的获得探险目标,得分相同的情况下排位最高的获得。开局随机选4个探险目标,每个探险目标由红黄蓝3个颜色共3个组成,如红红红,红黄蓝,等等。最多可以组建2个战队,每个战队最多由红黄蓝各1个组成,有缺的也是战队。如果翻出探险牌,则把探险牌放到等候区,重新翻牌。
2023-12-29 18:26:48 466
原创 基础概念、思维习惯、知识图谱
说明:刚开始写本文,因为本文涉及的内容会很多,部分内容要写清楚不容易,所以提前声明,现在只是第一阶段,先收集零散的内容,第二阶段再大刀阔斧地重构目录。
2023-12-25 17:36:44 501
原创 双向链表、双向循环链表
当转化完成以后,树中节点的左指针需要指向前驱,树中节点的右指针需要指向后继。这些子列表可以有一个或多个自己的子列表,以此类推,以生成如下面的示例所示的。对于双向循环列表,你可以将左右孩子指针作为双向循环链表的前驱和后继指针,第一个节点的前驱是最后一个节点,最后一个节点的后继是第一个节点。为了将每一级都序列化到一起,我们需要每一级中添加值为 null 的元素,以表示没有节点连接到上一级的上级节点。你会得到一个双链表,其中包含的节点有一个下一个指针、一个前一个指针和一个额外的。是一个带有子列表的节点。
2023-12-19 19:31:35 169
原创 rust 面向对象、trait
给结构体添加方法有2种,一种是直接实现,一种的带trait的实现。直接实现的方式中,数据和方法是对应的。带trait的实现中,trait是一组可以被共享的行为,只要实现了特征,你就能使用这组行为。
2023-12-16 15:54:16 1068
原创 软件安全设计
STRIDE 是由Microsoft安全研究人员于 1999 年创建,是一种以开发人员为中心的威胁建模方法,通过此方法可识别可能影响应用程序的威胁、攻击、漏洞,进而设计对应的缓解对策,以降低安全风险并满足公司的安全目标。STRIDE为每一种威胁英文的首写字母,。
2023-12-12 19:41:21 255
原创 二次创作Z01语言
预处理剔除所有非0和1的字符之后,采用固定分词方式,从左往右每三个字符构成1个token,所以一共有8种token。Ascii码分别是72,101,108,108,111,32,87,111,114,108,100,33。聪明的读者或许已经看出来了,我这个只是二次创作,毕竟有趣的灵魂互相抄袭。PS:预处理不是重点,本文不涉及,假设输入的都是只有0和1的字符。如果指针指向的单元值不为零,向前跳转到对应的[指令的次一指令处。如果指针指向的单元值为零,向后跳转到对应的]指令的次一指令处。指针指向的字节的值加一。
2023-11-26 17:13:46 294
原创 password game
因为加载不出来,这题自动满足了(可能是因为string ans14="',初始化之后没有再改,所以任何字符串都包含ans14)13是表示当前月相的emoji,今天是九月廿八(其实是一个个试的)但是C是罗马数字100,会违反规则(9),所以要用小写actor。12是要在元素周期表里面选一个2个字母的单词,先取He试试。14应该是一张街道图,要猜是哪个国家,也挺费劲的。这是一个逐步修改密码,满足越来越多的规则的游戏。15是包含一个闰年,4和8都是。直接第一个pepsi。
2023-11-12 00:11:43 341
原创 puzzle(1612)拼单词、wordlegame
找出尽可能多的单词。如果相邻的话(在任何方向上),你可以拖拽鼠标从一个字母(方格)到另一个字母(方格)。在一个单词中,你不能多次使用一个字母(方格)。虽然字母比较多,但是游戏限制了答案一定是单词(也只能用单词去试探)。类似,对于每个试探,会给出正确字母是哪些、正确但错误的字母是哪些。直接找2个包含10个不同字母的单词,且尽量其中的字母输入高频字母。这个鬼游戏太难了,基本上都是试出来的,这些单词都是什么鬼单词。这一下子就有4个字母了。
2023-11-11 22:57:06 371
原创 网页推理游戏
有一类游戏,通过解读html页面中的内容,推理出下一个html的url,从而进入下一关。这一类游戏可以有很多花样,可以有不同的主题。
2023-11-11 22:23:39 484
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人