gobang-ai
极大值极小值搜索
Alpha-beta 算法又称为极小化极大算法,是一种找出失败的最大可能性中最小值的算法.在局面确定的双人博弈中,常常进行对抗搜索,构建一颗每个节点都为一个确定状态的搜索树.树上每个节点都会被赋予一个估值,估值越大代表赢面越大.** 我方节点总会选择赢面最大的子节点,对方节点永远会选择我方赢面最小的子节点.**
Alpha-beta 剪枝
通常情况下,极大值极小值算法会构建一颗庞大的搜索树.这显然是不可接受的.因此,我们可以对搜索树进行剪枝,从而减少搜索树的大小.
剪枝的具体流程
为每个节点添加上界和下界,当上界<=下界时,就进行剪枝.
初始状态
初始状态下,叶节点的祖先节点上界=$+\infty$,下界=$-\infty$.此时通过DFS寻找到叶节点(假设此时为最左侧最下方)的父节点.同时递归初始化路径上的节点的上下界.
可以发现A节点为最小值节点,意味着他会将自己的上界设置为子节点的最小值.由图可知,最小值为3.
此时回退到A节点的双亲结点parent_a,发现是最大值节点.此时暂时将A的上界设置为自己的下界(即3).
...
ES6
let与const 声明变量let
let声明变量没有变量提升.
let块级作用域
不能重复声明
let声明的变量不会污染全局变量 123let RegExp = 10;console.log(RegExp);console.log(window.RegExp);
const
声明常量,一旦声明无法更改
let的特性const也有.
const 声明对象时,不能直接修改常量对象,但是可以修改常量对象内部的属性 12345678const person = { name:'joker'}//错误person = { name:'joker2'}
模板字符串12345678let a=10;let htmlStr= ` <div> <h1>${a}</h1>//可以通过$符号插入变量 </div>`
函数带参数默认值函数1234567891011121314151617181920212223242 ...
pat_1004
题目链接出现的问题:
想对自定义 struct 排序时忘记具体步骤.一:sort 中使用 lambda 表达式
123456789101112131415161718192021222324#include <bits/stdc++.h>#define ll long longusing namespace std;struct stu{ string name; string id; ll grade;};int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int n; cin>>n; if(n<=0)return 0; vector<stu> list(n); for(auto &i:list){ cin>>i.name>>i.id>>i.grade; } sort(begin(list),end(list),[](const stu & ...
复试
操作系统操作系统是什么?
操作系统是计算机系统中最基本的组成部分,它负责控制计算机的执行。他也是计算机资源的管理者.
1.管理以下资源:
处理机管理: (进程控制、进程同步、进程通信、死锁处理、理机调度)
内存管理: (提高内存利用率,内存的分配与回收、地址映射、内存保护与共享、内存扩充)
文件管理(计算机中的信息都是以文件的形式存在的)
设备管理(完成用户的 I/O 请求,方便用户使用设备、并提高设备的利用率)
2.为用户提供使用计算机硬件系统的接口:
命令接口 (用户通过控制台或终端输入操作命令,向系统提供各种服务要求)
程序接口 (由系统调用组成,用户在程序中使用这些系统调用来请求操作系统为其提供服务)
图形接口 最常见的图形用户界面 GUI(最终还是通过调用程序接口实现的)
3.为作为扩充机器
将裸机改造成功能更强使用更方便的机器.
操作系统的特征
并发和异步是操作系统最基本的两个特征,互为存在条件.
共享 系统资源可以由内存中的多个进程共同使用
异步 进程的执行以一种不可知的速度推进
虚拟 将一个物理上的实体变为若干个逻辑上的对应物
并发 某一时 ...
mysql
基础使用SQL分类
DDL(Data Definition Language): 定义数据结构, 如创建表, 创建索引, 创建触发器等
DML(Data Manipulation Language): 数据操作, 如插入, 更新, 删除等
DCL(Data Control Language): 数据控制, 如授权, 控制等
DQL(Data Query Language): 数据查询, 如查询, 查询统计等
常用SQL语句1mysql -uroot -p "登录数据库
123456789101112131415161718192021创建数据库create database [databaseName];创建表create table [tableName] ( [columnName] [columnType] [columnComment]);创建索引create index [indexName] on [tableName] ([columnName]);创建触发器create trigger [triggerName] after [triggerEven ...
数据库
数据库基本概念
数据: 描述事物的符号记录
数据库: 长期存储在计算机中,有组织的,可共享的大量数据的集合. 数据库具有较小的冗余度,较高的数据独立性和易扩展性.
特点:
永久存储
有组织
可共享
关系: 表
属性: 行
数据库技术以及其所经历的三个阶段:
数据技术是应数据管理任务的需要所产生,数据管理则是对数据进行分类,组织,编码,存储,检索和维护
数据历经
人工管理
文件系统
数据库系统
DBMS:
功能:
数据库定义和创建
数据组织,存储和管理
数据存取
数据库事务管理和运行管理
数据库的建立和维护
操作:
数据安全性保护
数据的完整性检查
并发检查
数据库恢复
数据模型
概念模型: 按照用户观点对数据和信息建模,用于数据库设计.
逻辑模型和物理模型:
逻辑模型: 从计算机角度对数据进行建模,用于数据的实现.
物理模型: 对数据最底层抽象,描述数据在系统内部的表示方式和存取方式.
一些基本概念:
实体(entity): 既可以是具体的人或者事,也可以是抽象的概念或者联系.
属性(attribute): 实体所具有的某一特性.
码( ...
编译原理
基本概念程序的编译过程
graph LR
源程序-->预处理器--经过预处理的源程序-->编译器--目标汇编程序-->汇编器--可重定位机器代码-->链接器/加载器-->目标机器代码
以cpp为例:
预处理阶段: 编译器将头文件添加入原文件中,并将所有宏定义替换为宏定义的值
编译阶段: 编译器将源代码编译成目标代码,该阶段主要负责词法分析,语法分析,语义分析
汇编阶段: 获得机器代码
链接阶段: 链接器将目标代码链接成可执行文件
编译器`
编译器是一个程序,它可以阅读以某一种语言写的程序并翻译为另外一种语言.编译器的重要任务之一就是找到编译过程中的错误.
解释器
直接执行用编程语言编写的指令的程序自动机