算法-Graph Problems
参考文献
Graph
基础概念
顶点
边
未加权图
加权图
顶点矩阵
邻接表
算法-CSP问题
参考文献
CSP问题
CSP问题是指约束满足问题(Constraint Satisfaction Problem),是一类重要的人工智能问题。在CSP问题中,变量的取值受到一定的约束条件限制,目标是找到满足所有约束条件的变量取值。常见的CSP问题有地图着色、八皇后、数独等。解决CSP问题的方法包括回溯算法、约束传播、启发式搜索等。CSP问题在人工智能领域有着广泛的应用,如排课、时间表安排、资源分配等。通过有效的算法和技术,可以高效地解决各种实际问题。
澳大利亚地图着色问题
The Australian map-coloring problem
八皇后问题
The eight queens problem
Word search
现有框架
choco-solver
https://github.com/chocoteam/choco-solver
算法-搜索
搜索
Classic Computer Science Problems in Java
线性搜索
二分搜索(Binary search)
深度优先搜索(DFS Depth-first search)
12345678910111213141516171819202122232425262728public static <T> Node<T> dfs(T initial, Predicate<T> goalTest, Function<T, List<T>> successors) { // frontier is where we've yet to go Stack<Node<T>> frontier = new Stack<>(); frontier.push(new Node<>(initial, null)); // explored is where we've been Set<T> explored = new H ...
LeetCode-斐波拉契数列
参考文献
Classic Computer Science Problems in Java
斐波拉契数列
12345678910111213public class Fib2 { private static int fib2(int n) { if (n < 2) { return n; } return fib2(n - 1) + fib2(n - 2); } public static void main(String[] args) { System.out.println(fib2(5)); System.out.println(fib2(10)); }}
剪枝
1234567891011121314151617public class Fib3 { static Map<Integer, Integer> memo = new HashMap<>(Map.of(0, 0, 1, 1)); private static int fib3( ...
LeetCode-汉诺塔
参考文献
Classic Computer Science Problems in Java
汉诺塔
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748import java.util.Stack;public class Hanoi { private final int numDiscs; public final Stack<Integer> towerA = new Stack<>(); public final Stack<Integer> towerB = new Stack<>(); public final Stack<Integer> towerC = new Stack<>(); public Hanoi(int discs) { numDiscs = discs; for (int i = 1; i <= discs; i++) ...
Docker-网络
参考文献
Docker网络
Docker网络
查看网络信息
12345678# docker network lsNETWORK ID NAME DRIVER SCOPE7731f800c2eb bridge bridge local27625663ead5 docker_default bridge local4b09ca6ec339 host host localec7e23d9e6bb mongodb_default bridge local23e5b7358579 none null local52dda41afae6 prod_default bridge local
查看某个网络的详细信息
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505 ...
Linux工具-rsync
参考文献
rsync
rsync用于在两个远程计算机之间同步文件和文件夹.它仅通过传输源和目标之间的差异来提供快速的增量文件传输.
rsync可用于镜像数据,增量备份,在系统之间复制文件,可替代scp,sftp和cp日常等使用的命令.
用法
rsync语法有三种,分别是本地到本地形式Local to Local,本地到远程Local to Remote,远程到本地Remote to Local
123Local to Local: rsync [OPTION]... [SRC]... DESTLocal to Remote: rsync [OPTION]... [SRC]... [USER@]HOST:DESTRemote to Local: rsync [OPTION]... [USER@]HOST:SRC... [DEST]
-a/--archive存档模式,等效于-rlptgoD.此选项指示rsync递归同步目录,传输特殊设备和块设备,保留符号链接,组,所有权和权限等.
-z/--compress,此选项将强制rsync在数据发送给目标计算机之前对数据进行压缩. ...
Mac M1 编译OpenJDK
参考文献
OpenJDK-编译 (mac)
OpenJDK-调试 (CLion)
优雅地在Mac OS Catalina下 编译 Open JDK 13
编译及调试OpenJDK18|Understanding the JVM
win10上构建并调试openjdk 11
MBP M1编译OpenJDK
环境说明: macOs: Sonoma 14.1.2 (23B92)
编译OpenJDK版本: jdk-23+4
使用的boot jdk版本: jdk-21.0.1+12
环境准备
123brew install FreeTypebrew install Autoconfbrew install gcc
安装XCode
安装完成后
1xcode-select -s /Applications/Xcode.app/Contents/Developer
下载OpenJDK源码
https://github.com/openjdk/jdk/releases/tag/jdk-23%2B4
此处选择的是JDK23
下载Boot JDK
https://adoptium.ne ...
SpringBoot-整合WebService
参考文献
SpringBoot整合WebService
Linux工具-nmap
参考文献
nmap
端口扫描基础
许多传统的端口扫描器只列出所有端口是开放还是关闭的, Nmap的信息粒度比它们要细得多。 它把端口分成六个状态: open(开放的),closed(关闭的),filtered(被过滤的), unfiltered(未被过滤的), open|filtered(开放或者被过滤的),或者closed|filtered(关闭或者被过滤的)。
Nmap所识别的6个端口状态
状态
说明
open(开放的)
应用程序正在该端口接收TCP 连接或者UDP报文。发现这一点常常是端口扫描 的主要目标。安全意识强的人们知道每个开放的端口 都是攻击的入口。攻击者或者入侵测试者想要发现开放的端口。 而管理员则试图关闭它们或者用防火墙保护它们以免妨碍了合法用户。 非安全扫描可能对开放的端口也感兴趣,因为它们显示了网络上那些服务可供使用
closed(关闭的)
关闭的端口对于Nmap也是可访问的(它接受Nmap的探测报文并作出响应), 但没有应用程序在其上监听。 它们可以显示该IP地址上(主机发现,或者ping扫描)的主机正在运行up 也对部分操作系统探测有 ...