PHP基于回溯算法解决n皇后问题的方法示例


Posted in PHP onNovember 07, 2017

本文实例讲述了PHP基于回溯算法解决n皇后问题的方法。分享给大家供大家参考,具体如下:

这里对于n皇后问题就不做太多的介绍,相关的介绍与算法分析可参考前面一篇C++基于回溯法解决八皇后问题。

回溯法的基本做法是搜索,或是一种组织得井井有条的,能避免不必要搜索的穷举式搜索法。这种方法适用于解一些组合数相当大的问题。

回溯法在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树。算法搜索至解空间树的任意一点时,先判断该结点是否包含问题的解。如果肯定不包含,则跳过对该结点为根的子树的搜索,逐层向其祖先结点回溯;否则,进入该子树,继续按深度优先策略搜索。

回溯法指导思想——走不通,就掉头。设计过程:确定问题的解空间;确定结点的扩展规则;搜索。

这里主要展示怎么用php实现该问题

$tres代表一次可行的尝试
$res 记录总结果

详细数据结构分析 可以参考前面的文章链接。

<?php
//check is valid now
function check($l,$c){
   global $tres;
   global $res;
   global $n,$count;
   foreach($tres as $key=>$value){
     if($key<$l){
     if($value==$c){
       return 0;
     }else if(abs($l-$key)==abs($c-$value)){
      return 0;
     }
    }
   }
   return 1;
}
function scan($line){
   global $tres;
   global $res;
   global $n,$count;
   if($line==$n){
     $res[]=$tres;
    // $tres=array();
    $count++;
   }else{
     for($i=0;$i<$n;$i++){
       if(check($line,$i)==1){
        $tres[$line]=$i;
        $nxline=$line+1;
        scan($nxline);
       }
     }
   }
}
$tres=array();
$res=array();
$n=8;$count=0;
$stime=microtime();
scan(0);
$etime=microtime();
var_dump($res);
echo "there is $count ways !\n";
$t=$etime-$stime;
echo (int)$t."seconds used.";

运行结果:

array(92) { [0]=> array(8) { [0]=> int(0) [1]=> int(4) [2]=> int(7) [3]=> int(5) [4]=> int(2) [5]=> int(6) [6]=> int(1) [7]=> int(3) } [1]=> array(8) { [0]=> int(0) [1]=> int(5) [2]=> int(7) [3]=> int(2) [4]=> int(6) [5]=> int(3) [6]=> int(1) [7]=> int(4) } [2]=> array(8) { [0]=> int(0) [1]=> int(6) [2]=> int(3) [3]=> int(5) [4]=> int(7) [5]=> int(1) [6]=> int(4) [7]=> int(2) } [3]=> array(8) { [0]=> int(0) [1]=> int(6) [2]=> int(4) [3]=> int(7) [4]=> int(1) [5]=> int(3) [6]=> int(5) [7]=> int(2) } [4]=> array(8) { [0]=> int(1) [1]=> int(3) [2]=> int(5) [3]=> int(7) [4]=> int(2) [5]=> int(0) [6]=> int(6) [7]=> int(4) } [5]=> array(8) { [0]=> int(1) [1]=> int(4) [2]=> int(6) [3]=> int(0) [4]=> int(2) [5]=> int(7) [6]=> int(5) [7]=> int(3) } [6]=> array(8) { [0]=> int(1) [1]=> int(4) [2]=> int(6) [3]=> int(3) [4]=> int(0) [5]=> int(7) [6]=> int(5) [7]=> int(2) } [7]=> array(8) { [0]=> int(1) [1]=> int(5) [2]=> int(0) [3]=> int(6) [4]=> int(3) [5]=> int(7) [6]=> int(2) [7]=> int(4) } [8]=> array(8) { [0]=> int(1) [1]=> int(5) [2]=> int(7) [3]=> int(2) [4]=> int(0) [5]=> int(3) [6]=> int(6) [7]=> int(4) } [9]=> array(8) { [0]=> int(1) [1]=> int(6) [2]=> int(2) [3]=> int(5) [4]=> int(7) [5]=> int(4) [6]=> int(0) [7]=> int(3) } [10]=> array(8) { [0]=> int(1) [1]=> int(6) [2]=> int(4) [3]=> int(7) [4]=> int(0) [5]=> int(3) [6]=> int(5) [7]=> int(2) } [11]=> array(8) { [0]=> int(1) [1]=> int(7) [2]=> int(5) [3]=> int(0) [4]=> int(2) [5]=> int(4) [6]=> int(6) [7]=> int(3) } [12]=> array(8) { [0]=> int(2) [1]=> int(0) [2]=> int(6) [3]=> int(4) [4]=> int(7) [5]=> int(1) [6]=> int(3) [7]=> int(5) } [13]=> array(8) { [0]=> int(2) [1]=> int(4) [2]=> int(1) [3]=> int(7) [4]=> int(0) [5]=> int(6) [6]=> int(3) [7]=> int(5) } [14]=> array(8) { [0]=> int(2) [1]=> int(4) [2]=> int(1) [3]=> int(7) [4]=> int(5) [5]=> int(3) [6]=> int(6) [7]=> int(0) } [15]=> array(8) { [0]=> int(2) [1]=> int(4) [2]=> int(6) [3]=> int(0) [4]=> int(3) [5]=> int(1) [6]=> int(7) [7]=> int(5) } [16]=> array(8) { [0]=> int(2) [1]=> int(4) [2]=> int(7) [3]=> int(3) [4]=> int(0) [5]=> int(6) [6]=> int(1) [7]=> int(5) } [17]=> array(8) { [0]=> int(2) [1]=> int(5) [2]=> int(1) [3]=> int(4) [4]=> int(7) [5]=> int(0) [6]=> int(6) [7]=> int(3) } [18]=> array(8) { [0]=> int(2) [1]=> int(5) [2]=> int(1) [3]=> int(6) [4]=> int(0) [5]=> int(3) [6]=> int(7) [7]=> int(4) } [19]=> array(8) { [0]=> int(2) [1]=> int(5) [2]=> int(1) [3]=> int(6) [4]=> int(4) [5]=> int(0) [6]=> int(7) [7]=> int(3) } [20]=> array(8) { [0]=> int(2) [1]=> int(5) [2]=> int(3) [3]=> int(0) [4]=> int(7) [5]=> int(4) [6]=> int(6) [7]=> int(1) } [21]=> array(8) { [0]=> int(2) [1]=> int(5) [2]=> int(3) [3]=> int(1) [4]=> int(7) [5]=> int(4) [6]=> int(6) [7]=> int(0) } [22]=> array(8) { [0]=> int(2) [1]=> int(5) [2]=> int(7) [3]=> int(0) [4]=> int(3) [5]=> int(6) [6]=> int(4) [7]=> int(1) } [23]=> array(8) { [0]=> int(2) [1]=> int(5) [2]=> int(7) [3]=> int(0) [4]=> int(4) [5]=> int(6) [6]=> int(1) [7]=> int(3) } [24]=> array(8) { [0]=> int(2) [1]=> int(5) [2]=> int(7) [3]=> int(1) [4]=> int(3) [5]=> int(0) [6]=> int(6) [7]=> int(4) } [25]=> array(8) { [0]=> int(2) [1]=> int(6) [2]=> int(1) [3]=> int(7) [4]=> int(4) [5]=> int(0) [6]=> int(3) [7]=> int(5) } [26]=> array(8) { [0]=> int(2) [1]=> int(6) [2]=> int(1) [3]=> int(7) [4]=> int(5) [5]=> int(3) [6]=> int(0) [7]=> int(4) } [27]=> array(8) { [0]=> int(2) [1]=> int(7) [2]=> int(3) [3]=> int(6) [4]=> int(0) [5]=> int(5) [6]=> int(1) [7]=> int(4) } [28]=> array(8) { [0]=> int(3) [1]=> int(0) [2]=> int(4) [3]=> int(7) [4]=> int(1) [5]=> int(6) [6]=> int(2) [7]=> int(5) } [29]=> array(8) { [0]=> int(3) [1]=> int(0) [2]=> int(4) [3]=> int(7) [4]=> int(5) [5]=> int(2) [6]=> int(6) [7]=> int(1) } [30]=> array(8) { [0]=> int(3) [1]=> int(1) [2]=> int(4) [3]=> int(7) [4]=> int(5) [5]=> int(0) [6]=> int(2) [7]=> int(6) } [31]=> array(8) { [0]=> int(3) [1]=> int(1) [2]=> int(6) [3]=> int(2) [4]=> int(5) [5]=> int(7) [6]=> int(0) [7]=> int(4) } [32]=> array(8) { [0]=> int(3) [1]=> int(1) [2]=> int(6) [3]=> int(2) [4]=> int(5) [5]=> int(7) [6]=> int(4) [7]=> int(0) } [33]=> array(8) { [0]=> int(3) [1]=> int(1) [2]=> int(6) [3]=> int(4) [4]=> int(0) [5]=> int(7) [6]=> int(5) [7]=> int(2) } [34]=> array(8) { [0]=> int(3) [1]=> int(1) [2]=> int(7) [3]=> int(4) [4]=> int(6) [5]=> int(0) [6]=> int(2) [7]=> int(5) } [35]=> array(8) { [0]=> int(3) [1]=> int(1) [2]=> int(7) [3]=> int(5) [4]=> int(0) [5]=> int(2) [6]=> int(4) [7]=> int(6) } [36]=> array(8) { [0]=> int(3) [1]=> int(5) [2]=> int(0) [3]=> int(4) [4]=> int(1) [5]=> int(7) [6]=> int(2) [7]=> int(6) } [37]=> array(8) { [0]=> int(3) [1]=> int(5) [2]=> int(7) [3]=> int(1) [4]=> int(6) [5]=> int(0) [6]=> int(2) [7]=> int(4) } [38]=> array(8) { [0]=> int(3) [1]=> int(5) [2]=> int(7) [3]=> int(2) [4]=> int(0) [5]=> int(6) [6]=> int(4) [7]=> int(1) } [39]=> array(8) { [0]=> int(3) [1]=> int(6) [2]=> int(0) [3]=> int(7) [4]=> int(4) [5]=> int(1) [6]=> int(5) [7]=> int(2) } [40]=> array(8) { [0]=> int(3) [1]=> int(6) [2]=> int(2) [3]=> int(7) [4]=> int(1) [5]=> int(4) [6]=> int(0) [7]=> int(5) } [41]=> array(8) { [0]=> int(3) [1]=> int(6) [2]=> int(4) [3]=> int(1) [4]=> int(5) [5]=> int(0) [6]=> int(2) [7]=> int(7) } [42]=> array(8) { [0]=> int(3) [1]=> int(6) [2]=> int(4) [3]=> int(2) [4]=> int(0) [5]=> int(5) [6]=> int(7) [7]=> int(1) } [43]=> array(8) { [0]=> int(3) [1]=> int(7) [2]=> int(0) [3]=> int(2) [4]=> int(5) [5]=> int(1) [6]=> int(6) [7]=> int(4) } [44]=> array(8) { [0]=> int(3) [1]=> int(7) [2]=> int(0) [3]=> int(4) [4]=> int(6) [5]=> int(1) [6]=> int(5) [7]=> int(2) } [45]=> array(8) { [0]=> int(3) [1]=> int(7) [2]=> int(4) [3]=> int(2) [4]=> int(0) [5]=> int(6) [6]=> int(1) [7]=> int(5) } [46]=> array(8) { [0]=> int(4) [1]=> int(0) [2]=> int(3) [3]=> int(5) [4]=> int(7) [5]=> int(1) [6]=> int(6) [7]=> int(2) } [47]=> array(8) { [0]=> int(4) [1]=> int(0) [2]=> int(7) [3]=> int(3) [4]=> int(1) [5]=> int(6) [6]=> int(2) [7]=> int(5) } [48]=> array(8) { [0]=> int(4) [1]=> int(0) [2]=> int(7) [3]=> int(5) [4]=> int(2) [5]=> int(6) [6]=> int(1) [7]=> int(3) } [49]=> array(8) { [0]=> int(4) [1]=> int(1) [2]=> int(3) [3]=> int(5) [4]=> int(7) [5]=> int(2) [6]=> int(0) [7]=> int(6) } [50]=> array(8) { [0]=> int(4) [1]=> int(1) [2]=> int(3) [3]=> int(6) [4]=> int(2) [5]=> int(7) [6]=> int(5) [7]=> int(0) } [51]=> array(8) { [0]=> int(4) [1]=> int(1) [2]=> int(5) [3]=> int(0) [4]=> int(6) [5]=> int(3) [6]=> int(7) [7]=> int(2) } [52]=> array(8) { [0]=> int(4) [1]=> int(1) [2]=> int(7) [3]=> int(0) [4]=> int(3) [5]=> int(6) [6]=> int(2) [7]=> int(5) } [53]=> array(8) { [0]=> int(4) [1]=> int(2) [2]=> int(0) [3]=> int(5) [4]=> int(7) [5]=> int(1) [6]=> int(3) [7]=> int(6) } [54]=> array(8) { [0]=> int(4) [1]=> int(2) [2]=> int(0) [3]=> int(6) [4]=> int(1) [5]=> int(7) [6]=> int(5) [7]=> int(3) } [55]=> array(8) { [0]=> int(4) [1]=> int(2) [2]=> int(7) [3]=> int(3) [4]=> int(6) [5]=> int(0) [6]=> int(5) [7]=> int(1) } [56]=> array(8) { [0]=> int(4) [1]=> int(6) [2]=> int(0) [3]=> int(2) [4]=> int(7) [5]=> int(5) [6]=> int(3) [7]=> int(1) } [57]=> array(8) { [0]=> int(4) [1]=> int(6) [2]=> int(0) [3]=> int(3) [4]=> int(1) [5]=> int(7) [6]=> int(5) [7]=> int(2) } [58]=> array(8) { [0]=> int(4) [1]=> int(6) [2]=> int(1) [3]=> int(3) [4]=> int(7) [5]=> int(0) [6]=> int(2) [7]=> int(5) } [59]=> array(8) { [0]=> int(4) [1]=> int(6) [2]=> int(1) [3]=> int(5) [4]=> int(2) [5]=> int(0) [6]=> int(3) [7]=> int(7) } [60]=> array(8) { [0]=> int(4) [1]=> int(6) [2]=> int(1) [3]=> int(5) [4]=> int(2) [5]=> int(0) [6]=> int(7) [7]=> int(3) } [61]=> array(8) { [0]=> int(4) [1]=> int(6) [2]=> int(3) [3]=> int(0) [4]=> int(2) [5]=> int(7) [6]=> int(5) [7]=> int(1) } [62]=> array(8) { [0]=> int(4) [1]=> int(7) [2]=> int(3) [3]=> int(0) [4]=> int(2) [5]=> int(5) [6]=> int(1) [7]=> int(6) } [63]=> array(8) { [0]=> int(4) [1]=> int(7) [2]=> int(3) [3]=> int(0) [4]=> int(6) [5]=> int(1) [6]=> int(5) [7]=> int(2) } [64]=> array(8) { [0]=> int(5) [1]=> int(0) [2]=> int(4) [3]=> int(1) [4]=> int(7) [5]=> int(2) [6]=> int(6) [7]=> int(3) } [65]=> array(8) { [0]=> int(5) [1]=> int(1) [2]=> int(6) [3]=> int(0) [4]=> int(2) [5]=> int(4) [6]=> int(7) [7]=> int(3) } [66]=> array(8) { [0]=> int(5) [1]=> int(1) [2]=> int(6) [3]=> int(0) [4]=> int(3) [5]=> int(7) [6]=> int(4) [7]=> int(2) } [67]=> array(8) { [0]=> int(5) [1]=> int(2) [2]=> int(0) [3]=> int(6) [4]=> int(4) [5]=> int(7) [6]=> int(1) [7]=> int(3) } [68]=> array(8) { [0]=> int(5) [1]=> int(2) [2]=> int(0) [3]=> int(7) [4]=> int(3) [5]=> int(1) [6]=> int(6) [7]=> int(4) } [69]=> array(8) { [0]=> int(5) [1]=> int(2) [2]=> int(0) [3]=> int(7) [4]=> int(4) [5]=> int(1) [6]=> int(3) [7]=> int(6) } [70]=> array(8) { [0]=> int(5) [1]=> int(2) [2]=> int(4) [3]=> int(6) [4]=> int(0) [5]=> int(3) [6]=> int(1) [7]=> int(7) } [71]=> array(8) { [0]=> int(5) [1]=> int(2) [2]=> int(4) [3]=> int(7) [4]=> int(0) [5]=> int(3) [6]=> int(1) [7]=> int(6) } [72]=> array(8) { [0]=> int(5) [1]=> int(2) [2]=> int(6) [3]=> int(1) [4]=> int(3) [5]=> int(7) [6]=> int(0) [7]=> int(4) } [73]=> array(8) { [0]=> int(5) [1]=> int(2) [2]=> int(6) [3]=> int(1) [4]=> int(7) [5]=> int(4) [6]=> int(0) [7]=> int(3) } [74]=> array(8) { [0]=> int(5) [1]=> int(2) [2]=> int(6) [3]=> int(3) [4]=> int(0) [5]=> int(7) [6]=> int(1) [7]=> int(4) } [75]=> array(8) { [0]=> int(5) [1]=> int(3) [2]=> int(0) [3]=> int(4) [4]=> int(7) [5]=> int(1) [6]=> int(6) [7]=> int(2) } [76]=> array(8) { [0]=> int(5) [1]=> int(3) [2]=> int(1) [3]=> int(7) [4]=> int(4) [5]=> int(6) [6]=> int(0) [7]=> int(2) } [77]=> array(8) { [0]=> int(5) [1]=> int(3) [2]=> int(6) [3]=> int(0) [4]=> int(2) [5]=> int(4) [6]=> int(1) [7]=> int(7) } [78]=> array(8) { [0]=> int(5) [1]=> int(3) [2]=> int(6) [3]=> int(0) [4]=> int(7) [5]=> int(1) [6]=> int(4) [7]=> int(2) } [79]=> array(8) { [0]=> int(5) [1]=> int(7) [2]=> int(1) [3]=> int(3) [4]=> int(0) [5]=> int(6) [6]=> int(4) [7]=> int(2) } [80]=> array(8) { [0]=> int(6) [1]=> int(0) [2]=> int(2) [3]=> int(7) [4]=> int(5) [5]=> int(3) [6]=> int(1) [7]=> int(4) } [81]=> array(8) { [0]=> int(6) [1]=> int(1) [2]=> int(3) [3]=> int(0) [4]=> int(7) [5]=> int(4) [6]=> int(2) [7]=> int(5) } [82]=> array(8) { [0]=> int(6) [1]=> int(1) [2]=> int(5) [3]=> int(2) [4]=> int(0) [5]=> int(3) [6]=> int(7) [7]=> int(4) } [83]=> array(8) { [0]=> int(6) [1]=> int(2) [2]=> int(0) [3]=> int(5) [4]=> int(7) [5]=> int(4) [6]=> int(1) [7]=> int(3) } [84]=> array(8) { [0]=> int(6) [1]=> int(2) [2]=> int(7) [3]=> int(1) [4]=> int(4) [5]=> int(0) [6]=> int(5) [7]=> int(3) } [85]=> array(8) { [0]=> int(6) [1]=> int(3) [2]=> int(1) [3]=> int(4) [4]=> int(7) [5]=> int(0) [6]=> int(2) [7]=> int(5) } [86]=> array(8) { [0]=> int(6) [1]=> int(3) [2]=> int(1) [3]=> int(7) [4]=> int(5) [5]=> int(0) [6]=> int(2) [7]=> int(4) } [87]=> array(8) { [0]=> int(6) [1]=> int(4) [2]=> int(2) [3]=> int(0) [4]=> int(5) [5]=> int(7) [6]=> int(1) [7]=> int(3) } [88]=> array(8) { [0]=> int(7) [1]=> int(1) [2]=> int(3) [3]=> int(0) [4]=> int(6) [5]=> int(4) [6]=> int(2) [7]=> int(5) } [89]=> array(8) { [0]=> int(7) [1]=> int(1) [2]=> int(4) [3]=> int(2) [4]=> int(0) [5]=> int(6) [6]=> int(3) [7]=> int(5) } [90]=> array(8) { [0]=> int(7) [1]=> int(2) [2]=> int(0) [3]=> int(5) [4]=> int(1) [5]=> int(4) [6]=> int(6) [7]=> int(3) } [91]=> array(8) { [0]=> int(7) [1]=> int(3) [2]=> int(0) [3]=> int(2) [4]=> int(5) [5]=> int(1) [6]=> int(6) [7]=> int(4) } } there is 92 ways ! 0seconds used.

还有要说明的 最后面面的时间计算 不太严谨 高精度的变量php是不能直接相减的 会有严重误差。这里只做临时演示,需要精确计算还得调用相关函数。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP开启gzip页面压缩实例代码
Mar 11 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
Jul 01 PHP
PHP-Fcgi下PHP的执行时间设置方法
Aug 02 PHP
php检测iis环境是否支持htaccess的方法
Feb 18 PHP
ThinkPHP使用心得分享-上传类UploadFile的使用
May 15 PHP
两千行代码的PHP学习笔记汇总
Oct 05 PHP
php获取随机数组列表的方法
Nov 13 PHP
PHP环境中Memcache的安装和使用
Nov 05 PHP
Zend Framework实现留言本分页功能(附demo源码下载)
Mar 22 PHP
一段实用的php验证码函数
May 19 PHP
php cookie工作原理与实例详解
Jul 18 PHP
利用php做服务器和web前端的界面进行交互
Oct 31 PHP
php实现的三个常用加密解密功能函数示例
Nov 06 #PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
Nov 06 #PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
Nov 06 #PHP
PHP简单实现欧拉函数Euler功能示例
Nov 06 #PHP
Laravel中服务提供者和门面模式的入门介绍
Nov 06 #PHP
php实现的生成迷宫与迷宫寻址算法完整实例
Nov 06 #PHP
使用 laravel sms 构建短信验证码发送校验功能
Nov 06 #PHP
You might like
php select,radio和checkbox默认选择的实现方法
2010/05/15 PHP
php笔记之:有规律大文件的读取与写入的分析
2013/04/26 PHP
解析php防止form重复提交的方法
2013/07/01 PHP
为PHP5.4开启Zend OPCode缓存
2014/12/26 PHP
PHP中大于2038年时间戳的问题处理方案
2015/03/03 PHP
提高php编程效率技巧
2015/08/13 PHP
laravel中短信发送验证码的实现方法
2018/04/25 PHP
如何解决PHP获取不到SESSION信息之一般情况
2019/10/10 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
php操作redis常见方法示例【key与value操作】
2020/04/14 PHP
JavaScript DOM 学习第五章 表单简介
2010/02/19 Javascript
JavaScript异步回调的Promise模式封装实例
2014/06/07 Javascript
javascript每日必学之运算符
2016/02/16 Javascript
微信小程序中顶部导航栏的实现代码
2017/03/30 Javascript
JS实现弹出下载对话框及常见文件类型的下载
2017/07/13 Javascript
Bootstrap4 gulp 配置详解
2019/01/06 Javascript
JavaScript函数式编程(Functional Programming)组合函数(Composition)用法分析
2019/05/22 Javascript
解决layui富文本编辑器图片上传无法回显的问题
2019/09/18 Javascript
JavaScript实现简单贪吃蛇效果
2020/03/09 Javascript
详解微信小程序工程化探索之webpack实战
2020/04/20 Javascript
vue-router 控制路由权限的实现
2020/09/24 Javascript
[01:21]2018DOTA2亚洲邀请赛4.5采访 打DOTA2也能有女朋友?
2018/04/06 DOTA
重命名批处理python脚本
2013/04/05 Python
Python MySQLdb 执行sql语句时的参数传递方式
2020/03/04 Python
Python导入数值型Excel数据并生成矩阵操作
2020/06/09 Python
python开发一个解析protobuf文件的简单编译器
2020/11/17 Python
美国宠物商店:Wag.com
2016/10/25 全球购物
Stuart Weitzman欧盟:美国奢华鞋履品牌
2017/05/24 全球购物
实习单位接收函模板
2014/01/10 职场文书
我的长生果教学反思
2014/04/28 职场文书
公司会议策划方案
2014/05/17 职场文书
九一八事变纪念日演讲稿
2014/09/14 职场文书
护士工作心得体会
2016/01/25 职场文书
SQLServer2019 数据库的基本使用之图形化界面操作的实现
2021/04/08 SQL Server
总结Pyinstaller打包的高级用法
2021/06/28 Python
nginx location 带斜杠【 / 】与不带的区别
2022/04/13 Servers