- python os.environ
江湖偌大
python深度学习
os.environ['TF_CPP_MIN_LOG_LEVEL']='0'#默认值,输出所有信息os.environ['TF_CPP_MIN_LOG_LEVEL']='1'#屏蔽通知信息(INFO)os.environ['TF_CPP_MIN_LOG_LEVEL']='2'#屏蔽通知信息和警告信息(INFO\WARNING)os.environ['TF_CPP_MIN_LOG_LEVEL']='
- vue 创建项目报错:command failed: npm install --loglevel error
那鱼、会飞
vue.jsvue-cli3
这个问题其实很好解决,只是很多种情况,逐一排除即可。稳下心来~vuecli3创建项目我的node版本是node14.15.0,(永远不要尝试最新版本)node各种版本下载地址:以往的版本|Node.js(nodejs.org)vue/
[email protected]@vue/
[email protected](注意vue/cli2和vue/cli3的下载命名有所改变,2是-形式,3是/形式)其实报错
- python绘制等高线和等值面初步
bcbobo21cn
图形学和3Dpython开发语言MatplotlibNumPy等高线
importmatplotlib.pyplotaspltimportnumpyasnpx=np.linspace(-5,6,210)y=np.linspace(-5,6,210)x,y=np.meshgrid(x,y)z=(1-x/2+x**5+y**4)*np.exp(-x**2-y**2)plt.contour(x,y,z,levels=9,colors='black')plt.show()i
- python+adb
0o一人情
adb命令Python项目python开发语言
#!/usr/bin/pythonenv#-*-coding:utf-8-*-importosimportsysimportsubprocessfromtimeimportsleepimportlogginglogging.basicConfig(level=logging.DEBUG)classScreenCapture():defget_screen_size(self):"""获取手机分辨率
- CISSP考点拾遗——软件保障SwA
我全家都是CISSP
说明:“考点拾遗”系列基于日常为学员和网友做的答疑整理,主要涉及教材中没有完全覆盖到的知识点。Softwareassuranceisthelevelofconfidencethatsoftwareisfreefromvulnerabilities,eitherintentionallydesignedintothesoftwareoraccidentallyinsertedatanytimedur
- 商务英语 Level 2 Unit 1 Part 2
流非沫
Listening【DailySchedule】Maryisanemployeeatarealestatecompany.Thisisherdailyworkschedule.ShegoestoworkfromMondaytoFriday.Sheusuallyworksfrom9a.m.to5p.m.Shegetsupat7:30inthemorning.Sheleavesforworkat8:1
- AtCoder Beginner Contest 357-C
Vanilla_chan
c++
本文同步发布在我的网站上,欢迎来看看喵~ProblemForanon-negativeintegerKKK,wedefinealevel-KKKcarpetasfollows:Alevel-000carpetisa1×11\times11×1gridconsistingofasingleblackcell.ForK>0K>0K>0,alevel-KKKcarpetisa3K×3K3^K\times
- 论文-A Stack-Propagation Framework with Token-Level Intent Detection for Spoken Language Understanding
魏鹏飞
1.简称论文《AStack-PropagationFrameworkwithToken-LevelIntentDetectionforSpokenLanguageUnderstanding》,作者LiboQin(HarbinInstituteofTechnology,China),经典的NLU论文(SemanticFrame)。2.摘要意图检测和槽位填充是构建口语理解(SLU)系统的两个主要任务。
- 微信小程序集成前端日志库
人工智能的苟富贵
前端小程序微信小程序前端
在微信小程序内接入日志库的记录在开发微信小程序时,为了更好地调试和维护代码,通常需要记录日志信息。我尝试了多种日志库,包括Winston、pion和loglevel,并最终选择了loglevel作为日志库,并实现了日志上传到服务器的功能。本文详细记录了这一过程,以供参考。使用Winston失败最初,我尝试在微信小程序中使用Winston日志库。然而,Winston依赖Node.js的部分核心模块(
- c语言宏不能传递参数,C语言 如何在宏定义中使用可变参数
左右不对称定律
c语言宏不能传递参数
有一个记录日志的函数,想用宏定义进行包装,简化调用方法,但是xlc报如下的错误:void_log(constintlevel,char*file,intline,constchar*fmt,...){va_listap;intcount;time_tt;structtm*st;charstr_time[255];memset(str_time,0x00,sizeof(str_time));time
- 【nginx】缓存配置文件
williamdsy
运维nginx缓存
http{#...其他配置...#缓存目录配置proxy_cache_path/var/cache/nginx/proxy_cachelevels=1:2keys_zone=my_cache:10minactive=60muse_temp_path=off;#...其他配置...}server{listen80;server_namewww.example.com;location/{root/v
- 基于VGG的猫狗识别
卑微小鹿
tensorflowtensorflow
由于猫和狗的数据在这里,所以就做了一下分类的神经网络1、首先进行图像处理:importcsvimportglobimportosimportrandomos.environ['TF_CPP_MIN_LOG_LEVEL']='2'importtensorflowastffromtensorflowimportkerasfromtensorflow.kerasimportlayersimportnum
- [Kaiming]Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification
MTandHJ
neuralnetworks
文章目录概主要内容PReLUKaiming初始化ForwardcaseBackwardcaseHeK,ZhangX,RenS,etal.DelvingDeepintoRectifiers:SurpassingHuman-LevelPerformanceonImageNetClassification[C].internationalconferenceoncomputervision,2015:1
- 《重构:改善既有代码的设计》-学习笔记二(+实战解析
2401_86367399
面试辅导大厂内推重构学习笔记
returnfinalPrice;}privatedoublediscountedPrice(intdiscountLevel){if(discountLevel==2)returngetBasePrice()*0.1;elsereturngetBasePrice()*0.05;}privateintgetBasePrice(){return_quantity*_itemPrice;}优化1,2,
- vscode .vue文件 格式化配置
yangdongnan
编辑器前端
{"files.autoSave":"afterDelay","editor.renderControlCharacters":true,"workbench.iconTheme":"material-icon-theme","window.zoomLevel":0,"[html]":{"editor.defaultFormatter":"HookyQR.beautify"},"[javascri
- SpringBoot配置某个类启用debug日志
亚林瓜子
springbootjavaspring
问题在Spring项目中,某个类里面使用debug级别的日志打印。需要使它生效。解决在Spring的配置文件中,添加:logging:level:com.xxx.xxx.service.impl.CxxxImp:DEBUG
- python 自动下载ERA5 netCDF4格式数据 INFO Request is queued
水猪1
python
2024-05-2111:18:46,271INFOWelcometotheCDS2024-05-2111:18:46,289INFOSendingrequesttohttps://cds.climate.copernicus.eu/api/v2/resources/reanalysis-era5-pressure-levels2024-05-2111:18:46,512INFORequestis
- 2020年是做安卓开发人员的绝佳时机,android开发面试自我介绍
m0_66144765
程序员架构移动开发android
你这样做仅仅是准备好一个开发环境去构建安卓App,但是你还得去准备好基础和基本知识来理解安卓开发和大多数教程使用的通用术语你现在也可以在安卓系统上构建基本的App,并且可以开发一些功能。随意使用空白画布,用你的想象力填充它。当你玩完创意后,2020年你的下一个目标是加快游戏进度,推动自己成为一名为数十亿人构建应用的开发者。我们现在去第二层!提升自己-作为一个安卓开发者Level2这个列表将作为你学
- 网络编程(setsockopt、超时检测)
敲代码的鹏鹏
网络服务器运维
【1】setsockopt:设置套接字属性set:设置sock:套接字option:属性intsetsockopt(intsockfd,intlevel,intoptname,void*optval,socklen_toptlen)功能:获得/设置套接字属性参数:sockfd:套接字描述符level:协议层optname:选项名optval:选项值optlen:选项值大小返回值:成功0失败-1so
- java实现es分页查询_elasticsearch high level rest api分页查询数据
weixin_42565971
java实现es分页查询
Transport方式查询数据,在今后的elasticsearch中将不在维护,官方推荐用用highlevelrestapi或者lowerlevelapi去操作elasticsearch中的数据。在elasticsearch的增删改查操作中,其实最复杂的也就是分页查询了,根据elasticsearch官方资料,做个简单的笔记.1.准备jar包,我用的elasticsearch7.3版本,各版本需要
- api-ms-win-downlevel-kernel32-l2-1-0.dll 文件介绍及其丢失修复指南
Nebula_042
经验分享windows
api-ms-win-downlevel-kernel32-l2-1-0.dll是一个与MicrosoftVisualC++Redistributable和Windows操作系统相关的动态链接库(DLL)文件。这个文件属于Windows的DownLevelAPI集合的一部分,它为新版本的Windows提供了向后兼容性支持,使得旧版本的软件能够在新版本的Windows上正常运行。具体来说,kerne
- Linux应用开发(15):Linux IO复用技术:epoll详细讲解
赛先生.AI
Linux应用开发(C++)linux
目录1.epoll概要2.优点3.工作模式及API(1)工作模式(2)API介绍4.触发类型(1)LT(水平触发,默认)(2)ET(边缘触发,EPOLLET)(3)EPOLLONESHOT(一次边沿触发)5.EPOLLOUT6.当读取数据时,有新数据到来的情况。7.使用过程中的若干问题(1)为什么一般要配合非阻塞使用?(2)什么情况下,LT可以配合阻塞I/O?8.应用场景(1)水平触发(Level
- Unity报错:error CS8805: Program using top-level statements must be an executable.
avi9111
每天一点u3dunityjava游戏引擎c#
大多数人都不想犯错,但压力大时总是动作变形大概意思网上查了一下,就是说C#的第一(top)行有错误,或者类(类的头部)就没写全这什么意思呢?又定位不到具体是哪个类但肯定是刚修改了一点点代码,就导致出错(一般都是写两行代码调试一次,除非你写半天代码才进行调试一次)其实很简单,就是:多写了一个分号usingUnityEngine.Rendering.HighDefinition;;//导致后面全部约等
- 英语流利说懂你英语 Level6 Unit2 Part4 Listening - Aging Population
wxl_dl
Theworld'spopulationisgrowingatarateofalittlemorethan1%peryear.However,notallsegmentsofthepopulationaregrowingatthesamerate.Thisgraphshowstherateofgrowthof3differentgroups:children,adultsandtheelderly
- goleveldb的原理简述(基于golang的goleveldb库)
陈墨1234
golang进阶之路源码学习golang开发语言后端经验分享笔记db
简介goleveldb是基于LSM-Tree实现的针对处理写多读少场景的解决方案,通常用于构建写多读少的存储引擎整体架构图如下基于用户接口层简述原理吧Get,按key查询数据,首先区内存中的数据,如果内存中没有则依次从硬盘中的ldb文件中取得数据。Put,按key更新数据,首先写内存数据,如果大小达到内存存储的阈值,则将immutable替换为memtable,新建一个logfile存储wal日志
- 什么是脏读、幻读、不可重复读?
需要重新演唱
数据库服务器运维
什么是脏读、幻读、不可重复读?作为一名编程博客专家,我深知程序员在日常工作中对数据一致性和并发控制的关注。数据库事务的隔离级别(IsolationLevel)是确保数据一致性和并发控制的关键机制。本文将深入探讨脏读(DirtyRead)、幻读(PhantomRead)和不可重复读(Non-repeatableRead)的概念、区别、示例及实际应用,帮助你全面理解这些并发问题及其解决方案。1.前置知
- Leveldb源码分析--9
sparkliang
Leveldb分布式系统
6SSTable之36.5读取sstable文件6.5.1类层次Sstable文件的读取逻辑在类Table中,其中涉及到的类还是比较多的,如图6.5-1所示。图6.5-1Table类导出的函数只有3个,先从这三个导出函数开始分析。其中涉及到的类(包括上图中为画出的)都会一一遇到,然后再一一拆解。本节分析sstable的打开逻辑,后面再分析key的查找与数据遍历。6.5.2Table::Open()
- Python 开心消消乐
stormsha
Python基础python开发语言游戏
文章目录效果图项目结构程序代码完整代码:https://gitcode.com/stormsha1/games/overview效果图项目结构程序代码run.pyimportsysimportpygamefrompygame.localsimportKEYDOWN,QUIT,K_q,K_ESCAPE,MOUSEBUTTONDOWNfromdissipate.levelimportManagerfr
- 第11周作业---HLS编程环境入门
pss_runner
目录HLS概念HLS是什么HLS与VHDL/Verilog有什么关系?HLS技术问题HLS开发步骤环境搭建编写test.cpp文件预编译cpp文件HLS概念HLS是什么高层次综合(High-levelSynthesis)简称HLS,指的是将高层次语言描述的逻辑结构,自动转换成低抽象级语言描述的电路模型的过程。所谓的高层次语言,包括C、C++、SystemC等,通常有着较高的抽象度,并且往往不具有时
- 听力整理 L5-U2-P1 懂你英语 Level5 Unit2 Part1
猫咪需要安静
L5-U2-P1-1Listening:PsychologyofLove1PsychologyofLove1Oneofthemostimportanthumanemotionsislove.However,therearemanydifferentkindsoflove.Romanticloveiscertainlyoneofthemostinterestingkindsoflove.Itcanb
- SAX解析xml文件
小猪猪08
xml
1.创建SAXParserFactory实例
2.通过SAXParserFactory对象获取SAXParser实例
3.创建一个类SAXParserHander继续DefaultHandler,并且实例化这个类
4.SAXParser实例的parse来获取文件
public static void main(String[] args) {
//
- 为什么mysql里的ibdata1文件不断的增长?
brotherlamp
linuxlinux运维linux资料linux视频linux运维自学
我们在 Percona 支持栏目经常收到关于 MySQL 的 ibdata1 文件的这个问题。
当监控服务器发送一个关于 MySQL 服务器存储的报警时,恐慌就开始了 —— 就是说磁盘快要满了。
一番调查后你意识到大多数地盘空间被 InnoDB 的共享表空间 ibdata1 使用。而你已经启用了 innodbfileper_table,所以问题是:
ibdata1存了什么?
当你启用了 i
- Quartz-quartz.properties配置
eksliang
quartz
其实Quartz JAR文件的org.quartz包下就包含了一个quartz.properties属性配置文件并提供了默认设置。如果需要调整默认配置,可以在类路径下建立一个新的quartz.properties,它将自动被Quartz加载并覆盖默认的设置。
下面是这些默认值的解释
#-----集群的配置
org.quartz.scheduler.instanceName =
- informatica session的使用
18289753290
workflowsessionlogInformatica
如果希望workflow存储最近20次的log,在session里的Config Object设置,log options做配置,save session log :sessions run ;savesessio log for these runs:20
session下面的source 里面有个tracing 
- Scrapy抓取网页时出现CRC check failed 0x471e6e9a != 0x7c07b839L的错误
酷的飞上天空
scrapy
Scrapy版本0.14.4
出现问题现象:
ERROR: Error downloading <GET http://xxxxx CRC check failed
解决方法
1.设置网络请求时的header中的属性'Accept-Encoding': '*;q=0'
明确表示不支持任何形式的压缩格式,避免程序的解压
- java Swing小集锦
永夜-极光
java swing
1.关闭窗体弹出确认对话框
1.1 this.setDefaultCloseOperation (JFrame.DO_NOTHING_ON_CLOSE);
1.2
this.addWindowListener (
new WindowAdapter () {
public void windo
- 强制删除.svn文件夹
随便小屋
java
在windows上,从别处复制的项目中可能带有.svn文件夹,手动删除太麻烦,并且每个文件夹下都有。所以写了个程序进行删除。因为.svn文件夹在windows上是只读的,所以用File中的delete()和deleteOnExist()方法都不能将其删除,所以只能采用windows命令方式进行删除
- GET和POST有什么区别?及为什么网上的多数答案都是错的。
aijuans
get post
如果有人问你,GET和POST,有什么区别?你会如何回答? 我的经历
前几天有人问我这个问题。我说GET是用于获取数据的,POST,一般用于将数据发给服务器之用。
这个答案好像并不是他想要的。于是他继续追问有没有别的区别?我说这就是个名字而已,如果服务器支持,他完全可以把G
- 谈谈新浪微博背后的那些算法
aoyouzi
谈谈新浪微博背后的那些算法
本文对微博中常见的问题的对应算法进行了简单的介绍,在实际应用中的算法比介绍的要复杂的多。当然,本文覆盖的主题并不全,比如好友推荐、热点跟踪等就没有涉及到。但古人云“窥一斑而见全豹”,希望本文的介绍能帮助大家更好的理解微博这样的社交网络应用。
微博是一个很多人都在用的社交应用。天天刷微博的人每天都会进行着这样几个操作:原创、转发、回复、阅读、关注、@等。其中,前四个是针对短博文,最后的关注和@则针
- Connection reset 连接被重置的解决方法
百合不是茶
java字符流连接被重置
流是java的核心部分,,昨天在做android服务器连接服务器的时候出了问题,就将代码放到java中执行,结果还是一样连接被重置
被重置的代码如下;
客户端代码;
package 通信软件服务器;
import java.io.BufferedWriter;
import java.io.OutputStream;
import java.io.O
- web.xml配置详解之filter
bijian1013
javaweb.xmlfilter
一.定义
<filter>
<filter-name>encodingfilter</filter-name>
<filter-class>com.my.app.EncodingFilter</filter-class>
<init-param>
<param-name>encoding<
- Heritrix
Bill_chen
多线程xml算法制造配置管理
作为纯Java语言开发的、功能强大的网络爬虫Heritrix,其功能极其强大,且扩展性良好,深受热爱搜索技术的盆友们的喜爱,但它配置较为复杂,且源码不好理解,最近又使劲看了下,结合自己的学习和理解,跟大家分享Heritrix的点点滴滴。
Heritrix的下载(http://sourceforge.net/projects/archive-crawler/)安装、配置,就不罗嗦了,可以自己找找资
- 【Zookeeper】FAQ
bit1129
zookeeper
1.脱离IDE,运行简单的Java客户端程序
#ZkClient是简单的Zookeeper~$ java -cp "./:zookeeper-3.4.6.jar:./lib/*" ZKClient
1. Zookeeper是的Watcher回调是同步操作,需要添加异步处理的代码
2. 如果Zookeeper集群跨越多个机房,那么Leader/
- The user specified as a definer ('aaa'@'localhost') does not exist
白糖_
localhost
今天遇到一个客户BUG,当前的jdbc连接用户是root,然后部分删除操作都会报下面这个错误:The user specified as a definer ('aaa'@'localhost') does not exist
最后找原因发现删除操作做了触发器,而触发器里面有这样一句
/*!50017 DEFINER = ''aaa@'localhost' */
原来最初
- javascript中showModelDialog刷新父页面
bozch
JavaScript刷新父页面showModalDialog
在页面中使用showModalDialog打开模式子页面窗口的时候,如果想在子页面中操作父页面中的某个节点,可以通过如下的进行:
window.showModalDialog('url',self,‘status...’); // 首先中间参数使用self
在子页面使用w
- 编程之美-买书折扣
bylijinnan
编程之美
import java.util.Arrays;
public class BookDiscount {
/**编程之美 买书折扣
书上的贪心算法的分析很有意思,我看了半天看不懂,结果作者说,贪心算法在这个问题上是不适用的。。
下面用动态规划实现。
哈利波特这本书一共有五卷,每卷都是8欧元,如果读者一次购买不同的两卷可扣除5%的折扣,三卷10%,四卷20%,五卷
- 关于struts2.3.4项目跨站执行脚本以及远程执行漏洞修复概要
chenbowen00
strutsWEB安全
因为近期负责的几个银行系统软件,需要交付客户,因此客户专门请了安全公司对系统进行了安全评测,结果发现了诸如跨站执行脚本,远程执行漏洞以及弱口令等问题。
下面记录下本次解决的过程以便后续
1、首先从最简单的开始处理,服务器的弱口令问题,首先根据安全工具提供的测试描述中发现应用服务器中存在一个匿名用户,默认是不需要密码的,经过分析发现服务器使用了FTP协议,
而使用ftp协议默认会产生一个匿名用
- [电力与暖气]煤炭燃烧与电力加温
comsci
在宇宙中,用贝塔射线观测地球某个部分,看上去,好像一个个马蜂窝,又像珊瑚礁一样,原来是某个国家的采煤区.....
不过,这个采煤区的煤炭看来是要用完了.....那么依赖将起燃烧并取暖的城市,在极度严寒的季节中...该怎么办呢?
&nbs
- oracle O7_DICTIONARY_ACCESSIBILITY参数
daizj
oracle
O7_DICTIONARY_ACCESSIBILITY参数控制对数据字典的访问.设置为true,如果用户被授予了如select any table等any table权限,用户即使不是dba或sysdba用户也可以访问数据字典.在9i及以上版本默认为false,8i及以前版本默认为true.如果设置为true就可能会带来安全上的一些问题.这也就为什么O7_DICTIONARY_ACCESSIBIL
- 比较全面的MySQL优化参考
dengkane
mysql
本文整理了一些MySQL的通用优化方法,做个简单的总结分享,旨在帮助那些没有专职MySQL DBA的企业做好基本的优化工作,至于具体的SQL优化,大部分通过加适当的索引即可达到效果,更复杂的就需要具体分析了,可以参考本站的一些优化案例或者联系我,下方有我的联系方式。这是上篇。
1、硬件层相关优化
1.1、CPU相关
在服务器的BIOS设置中,可
- C语言homework2,有一个逆序打印数字的小算法
dcj3sjt126com
c
#h1#
0、完成课堂例子
1、将一个四位数逆序打印
1234 ==> 4321
实现方法一:
# include <stdio.h>
int main(void)
{
int i = 1234;
int one = i%10;
int two = i / 10 % 10;
int three = i / 100 % 10;
- apacheBench对网站进行压力测试
dcj3sjt126com
apachebench
ab 的全称是 ApacheBench , 是 Apache 附带的一个小工具 , 专门用于 HTTP Server 的 benchmark testing , 可以同时模拟多个并发请求。前段时间看到公司的开发人员也在用它作一些测试,看起来也不错,很简单,也很容易使用,所以今天花一点时间看了一下。
通过下面的一个简单的例子和注释,相信大家可以更容易理解这个工具的使用。
- 2种办法让HashMap线程安全
flyfoxs
javajdkjni
多线程之--2种办法让HashMap线程安全
多线程之--synchronized 和reentrantlock的优缺点
多线程之--2种JAVA乐观锁的比较( NonfairSync VS. FairSync)
HashMap不是线程安全的,往往在写程序时需要通过一些方法来回避.其实JDK原生的提供了2种方法让HashMap支持线程安全.
- Spring Security(04)——认证简介
234390216
Spring Security认证过程
认证简介
目录
1.1 认证过程
1.2 Web应用的认证过程
1.2.1 ExceptionTranslationFilter
1.2.2 在request之间共享SecurityContext
1
- Java 位运算
Javahuhui
java位运算
// 左移( << ) 低位补0
// 0000 0000 0000 0000 0000 0000 0000 0110 然后左移2位后,低位补0:
// 0000 0000 0000 0000 0000 0000 0001 1000
System.out.println(6 << 2);// 运行结果是24
// 右移( >> ) 高位补"
- mysql免安装版配置
ldzyz007
mysql
1、my-small.ini是为了小型数据库而设计的。不应该把这个模型用于含有一些常用项目的数据库。
2、my-medium.ini是为中等规模的数据库而设计的。如果你正在企业中使用RHEL,可能会比这个操作系统的最小RAM需求(256MB)明显多得多的物理内存。由此可见,如果有那么多RAM内存可以使用,自然可以在同一台机器上运行其它服务。
3、my-large.ini是为专用于一个SQL数据
- MFC和ado数据库使用时遇到的问题
你不认识的休道人
sqlC++mfc
===================================================================
第一个
===================================================================
try{
CString sql;
sql.Format("select * from p
- 表单重复提交Double Submits
rensanning
double
可能发生的场景:
*多次点击提交按钮
*刷新页面
*点击浏览器回退按钮
*直接访问收藏夹中的地址
*重复发送HTTP请求(Ajax)
(1)点击按钮后disable该按钮一会儿,这样能避免急躁的用户频繁点击按钮。
这种方法确实有些粗暴,友好一点的可以把按钮的文字变一下做个提示,比如Bootstrap的做法:
http://getbootstrap.co
- Java String 十大常见问题
tomcat_oracle
java正则表达式
1.字符串比较,使用“==”还是equals()? "=="判断两个引用的是不是同一个内存地址(同一个物理对象)。 equals()判断两个字符串的值是否相等。 除非你想判断两个string引用是否同一个对象,否则应该总是使用equals()方法。 如果你了解字符串的驻留(String Interning)则会更好地理解这个问题。
- SpringMVC 登陆拦截器实现登陆控制
xp9802
springMVC
思路,先登陆后,将登陆信息存储在session中,然后通过拦截器,对系统中的页面和资源进行访问拦截,同时对于登陆本身相关的页面和资源不拦截。
实现方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23