InabashscriptIamtryingtorunpythonandbashcommandboth.InsomewhereIwanttoexecutesomebashcommandinsideapythonloop.#!/bin/bashpython<
jQuery的substring由后向前截取字符串的方法
潮易
substring方法定义和用法substring方法用于提取字符串中介于两个指定下标之间的字符。语法stringObject.substring(start,stop)参数描述start必需。一个非负的整数,规定要提取的子串的第一个字符在stringObject中的位置。stop可选。一个非负的整数,比要提取的子串的最后一个字符在stringObject中的位置多1。如果省略该参数,那么返回的子
如何测试是否正确安装了自定义的Exepthook?
潮易
python开发语言
如何测试是否正确安装了自定义的Exepthook?在Python中,我们可以通过设置一个自定义的`sys.excepthook`来处理程序中的异常。这个钩子会在程序发生未捕获异常时被调用,我们可以在这个钩子中打印出错误信息或者发送错误报告给开发者等。要测试是否正确安装了自定义的Exepthook,我们可以编写一个简单的Python脚本,在脚本中使用`sys.excepthook`来捕获和处理一个异
存储和访问节点属性 python networkx
潮易
python开发语言
存储和访问节点属性pythonnetworkx在Python中,我们可以使用NetworkX库来创建和管理图数据结构。在NetworkX中,节点可以有属性,例如标签、颜色或价值等。以下是如何存储和访问节点的属性的步骤:1.首先,我们需要导入NetworkX库并创建一个图形对象。然后,我们可以给节点添加属性。```pythonimportnetworkxasnx#创建一个图形对象G=nx.Graph
Ploly:如何在Excel中嵌入完全交互的Ploly图形?
潮易
excel
要在Excel中嵌入一个交互式的Poly图形,可以利用`ChartTools>Design>InsertChartfromData>PivotTable`功能来创建一个包含多个系列的数据透视表,并将其转换为柱状图或折线图等交互式图表。具体步骤如下:1.首先,打开你的Excel工作簿,并准备你想要嵌入Poly图的数据。2.将你的数据整理成表格的形式(假设数据列包括'Category'、'Value1
如何通过自动化测试提升DevOps效率?
测试渣
ci/cd自动化gitlabdevops
引言在数字化转型的浪潮中,企业对软件交付速度和质量的要求日益严苛。DevOps通过持续集成(CI)、持续交付(CD)和持续监控(CM)等实践,将开发、测试与运维深度整合,显著缩短了从代码编写到生产部署的周期。然而,自动化测试作为DevOps体系的核心支柱,是实现高效交付的关键。它通过减少人工干预、加速反馈循环和提高测试覆盖率,直接推动了DevOps效率的提升。本文将从理论到实践,系统阐述如何通过自
前端如何通过后端返回的文件流下载csv文件
陈正阳~
前端前端javascriptjson
前端如何通过后端返回的文件流下载csv文件有一个下载的csv,后端返回了文件流有一个下载的csv,后端返回了文件流exportfunctionexportCSV(data:exportCSVParams):any{returnaxios({url:`/export/exportCSV?tableName=${data.tableName}&dataBaseName=${data.dataBaseN
软件架构师--数据库系统
一蓑烟雨*任平生
软件架构师数据库1024程序员节
一、分布式数据库1.分片透明性分片透明性:分不分片,用户感受不到(不关心如何分片存储)。位置透明性:数据存放在哪里,用户不用管(用户无需知道数据存放的物理位置)复制透明性:不关心结点的复制情况。局部数据模型透明性(逻辑透明):用户或应用程序无需知道局部场地使用的是哪种数据模型。2.两阶段提交协议2PC2PC事务提交的两个阶段①表决阶段,目的是形成一个共同的决定②执行阶段,目的是实现这个协调者的决定
院士领衔、IEEE Fellow 坐镇,清华、上交大、复旦、同济等专家齐聚 2025 全球机器学习技术大会
CSDN资讯
机器学习人工智能
随着Manus出圈,OpenManus、OWL迅速开源,OpenAI推出智能体开发工具,全球AI生态正经历新一轮智能体革命。大模型如何协同学习?大模型如何自我进化?新型强化学习技术如何赋能智能体?围绕这些关键问题,由CSDN&Boolan联合举办的「2025全球机器学习技术大会」将于4月18-19日在上海隆重举行。大会云集院士、10所高校科研工作者、近30家一线科技企业技术实战专家组成的超50位重
Eureka 介绍与原理详解
AllenBright
#Eurekaeureka云原生
在微服务架构中,服务发现(ServiceDiscovery)是一个至关重要的组件。随着服务数量的增加,手动管理服务的地址和端口变得不切实际。Eureka是Netflix开源的一款服务发现工具,旨在解决微服务架构中的服务注册与发现问题。本文将详细介绍Eureka的基本概念、工作原理以及如何在微服务架构中使用它。1.什么是Eureka?Eureka是Netflix开源的一个基于REST的服务发现组件,
2025年渗透测试面试题总结-安恒 (题目+回答)
独行soc
2025年渗透测试面试指南面试职场和发展安全web安全红蓝攻防
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。目录安恒1.sqlmap爆出当前数据库库名的参数是什么?2.nmap探测系统类型的参数是?3.nmap的小写-o和-A是做啥的?4.布尔盲注的具体语句是啥?5.宽字节原理6.Python是否存在反序列化漏洞?7.GET与POST传参的区别8.HTTP请求方式9.如何判断C
strtr和str_replace效率探索
hello_simon
php
今天写代码用到字符串规制,就上网查了下strtr与str_replace的效率如何,网上一些地方说strtr比str_replace快四倍。半信半疑,自己就做了下测试。strtr比较怪异,用法这里不提。只做两种这两个函数可以替换用的测试例子。第一种list($usec,$sec)=explode('',microtime());$star=$usec+$sec;$string='paocaiasd
2025版最新如何参加护网行动?零基础入门到精通,收藏这篇就够了!
程序媛西米
网络安全web安全网络安全HVV护网行动网络安全计算机
1.什么是护网行动护网行动是以公安部牵头的,用以评估企事业单位的网络安全的活动。具体实践中,公安部会组织攻防两方,进攻方会在一个月内对防守方发动网络攻击,检测出防守方(企事业单位)存在的安全漏洞。通过与进攻方的对抗,企事业单位网络、系统以及设备等的安全能力会大大提高。“护网行动”是国家应对网络安全问题所做的重要布局之一。“护网行动”从2016年开始,随着我国对网络安全的重视,涉及单位不断扩大,越来
输电线路参数测试:参数解读及运用指南
武汉凯迪正大
电缆线路测试系统经验分享笔记其他百度生活交友学习
在智能电网建设中,输电线路的工频参数(如正序电容、零序阻抗等)直接影响电力系统的稳定性和继电保护装置的整定精度。传统测试方法面临强电场干扰、接线复杂等难题,本文将以KDGXG-I型测试仪为例,从工作原理、参数解读到实操指南,带您全面了解这一电力测试领域的黑科技。一、工作原理:如何突破强电场干扰?KDGXG-I采用双频智能变频技术,如同为仪器配备了"降噪耳机":变频电源模块:输出47.5Hz/52.
移远通信推出GNSS定位模组新品LS550G,集成超紧凑设计、低功耗、高灵敏度等多重优势
移远通信
GNSS
1月7日,在CES2025期间,全球领先的物联网整体解决方案供应商移远通信宣布推出超紧凑型多星座GNSS定位模组LS550G,该模组在实现快速、精准定位的同时,还兼具尺寸紧凑、超低功耗、高灵敏度及高性价比等众多优势,为追求更高功耗效率和紧凑设计的应用提供了全新的理想解决方案。尤其对于偏好轻薄模组的便携式设备和可穿戴终端而言,LS550G无疑是满足其严苛需求的更佳选择。移远通信COO张栋表示:“LS
打造专业海报,不再难!5款AI绘画工具助你轻松生成
Ai工具分享
AI作画
在过去,不会PS却想要制作一张拿得出手的海报,那简直是一项艰巨无比的任务。但新增使用AI绘画功能,稍等一会就能生成1-4张设计感不错的成品营销海报。只需输入一句需求,即可轻松完成。下面小编就来给大家分享3款这种神奇的AI设计工具。一、牛学长图片修复工具在众多AI生图工具中,牛学长图片修复工具凭借其强大的AI技术和用户友好的界面设计脱颖而出。该工具的AI图片生成功能,不仅支持一键生成高质量图像,还特
如何进行OceanBase 运维工具的部署和表性能优化?
运维
随着OceanBase数据库应用的日益深入,数据量不断攀升,单个表中存储数百万乃至数千万条数据的情况变得愈发普遍。因此,部署专门的运维工具、实施针对性的表性能优化策略,以及加强指标监测工作,都变得更为重要。以下为基于我们的使用场景,所采取的一些部署和优化措施分享。一、OCP部署升级1.OCP升级(1)4.2.1BP1升级到4.2.2,本来以为毫无波澜但是下载完毕一键包并完成前期准备工作启动后发现无
大文件上传
前端javascript
大文件上传通常需要分片处理、断点续传等技术来提高上传效率和可靠性。以下是一个简单的JavaScript示例,展示如何实现大文件的分片上传和断点续传:大文件上传上传//请求基准地址axios.defaults.baseURL='http://localhost:3000';//选中的文件varfile=null;//选择文件document.getElementById('fileInput').o
Kubernetes集群版本升级
后端java
集群升级注意事项升级集群版本建议逐步升级,比如v1.20.1–>v1.21.1–>v1.22.1–>v1.23.1–>v1.24.1,不能跨度过大,否则会报错。升级步骤查看集群版本[root@hadoop102~]#kubectlgetnodesNAMESTATUSROLESAGEVERSIONhadoop102Ready,SchedulingDisabledcontrol-plane,maste
一文搞懂MCU和SoC的核心差异:从架构到应用场景全解析
Electron-er
单片机架构嵌入式硬件
目录引言一、从“芯片大脑”看本质:架构设计的哲学差异1.MCU:单一任务的执行专家2.SoC:系统级集成的超级平台二、实战对比:六大维度拆解差异1.性能指标对比2.开发模式对比三、选型指南:如何选择MCU或SoC?1.选择MCU的场景2.选择SoC的场景四、技术演进:MCU与SoC的融合趋势1.MCU的进化方向2.SoC的突破方向五、开发者避坑指南结语标签:MCUvsSOC、嵌入式系统、芯片选型、
DeepSeek R1 本地部署实战教程来了,带可视化界面,非常详细!
java
大家好,我是R哥。虽然DeepSeek官方提供了可视化聊天界面,但稳定性实在太差了,动不动就服务繁忙,根本没办法正常使用。另外,对于一些对数据隐私、实时性能要求较高的场景,本地部署也是不可避免的选择。那么,如何本地部署DeepSeekR1的模型?本篇,开干!相关阅读:DeepSeek-R1本地部署配置清单DeepSeek-R11.5b、7b、8b、14b、32b、70b、671b都是什么鬼?如何部
【推荐】爽,在 IDE 中做 LeetCode 题目的插件
ideleetcode
大家好,我是V哥。今天给大家推荐一款神器插件,废话不多说,马上开整。leetcode-editor是一个可以在IDE中做LeetCode题目的插件仓库,以下是对该仓库的详细介绍:来看一下这个神器是啥基本信息名称:LeetcodeEditor支持平台:理论上支持IntelliJIDEA、PhpStorm、WebStorm、PyCharm、RubyMine、AppCode、CLion、GoLand、D
如何让你的应用在市场中脱颖而出?
fiddler
开发者在完成应用开发并成功上架应用市场后,将面临一项重要挑战:如何在竞争激烈的环境中脱颖而出,吸引用户的关注?为此,提升应用的曝光度和下载量至关重要。HarmonyOSSDK应用市场服务(StoreKit)提供应用市场业务的对外开放能力,针对想要获得曝光的应用,StoreKit提供了应用市场推荐和应用市场更新功能的能力,可以更好地支持应用的下载、推荐和分发等场景,以提高在应用市场上的曝光度,助力开
spring event发布及监听实例
weixin_33924220
java测试
序本文主要介绍下如何在spring中进行发布时间以及接收事件定义事件publicclassDemoEventextendsApplicationEvent{privateStringmessage;publicDemoEvent(Objectsource,Stringmessage){super(source);this.message=message;}publicStringgetMessag
16天 - 单例模式有哪几种实现?如何保证线程安全?什么是策略模式?一般用在什么场景?什么是模板方法模式?一般用在什么场景?
和道一文字yyds
单例模式安全策略模式
单例模式有哪几种实现?如何保证线程安全?单例模式是一种确保某个类在程序中只有一个实例,并提供全局访问点的设计模式。以下是几种常见的单例模式实现方式及其线程安全保证方法:饿汉式饿汉式单例在类加载时就创建好实例对象,因此在程序调用时直接返回该单例对象即可。由于类加载的过程是线程安全的,所以饿汉式单例不存在线程安全问题。publicclassEagerSingleton{privatestaticfin
vue+ts+electron从客户端跳转网页,public文件中的图片不显示如何解决以及动态环境配置中数据获取不到
是小许同学吖
vue.jselectronubuntu前端typescript
客户端跳转网页遇到的问题跳转新窗口打开浏览器客户端跳转网页,public文件中的图片不显示如何解决在.env.dev中设置的环境配置信息获取不到跳转新窗口打开浏览器从客户端跳转新窗口打开浏览器代码如下://跳转新窗口,打开浏览器constgoNewWindows=(item:any)=>{console.log(item
戴尔笔记本win8系统改装win7系统
sophia天雪
win7戴尔改装系统win8
戴尔win8 系统改装win7 系统详述
第一步:使用U盘制作虚拟光驱:
1)下载安装UltraISO:注册码可以在网上搜索。
2)启动UltraISO,点击“文件”—》“打开”按钮,打开已经准备好的ISO镜像文
BeanUtils.copyProperties使用笔记
bylijinnan
java
BeanUtils.copyProperties VS PropertyUtils.copyProperties
两者最大的区别是:
BeanUtils.copyProperties会进行类型转换,而PropertyUtils.copyProperties不会。
既然进行了类型转换,那BeanUtils.copyProperties的速度比不上PropertyUtils.copyProp
MyEclipse中文乱码问题
0624chenhong
MyEclipse
一、设置新建常见文件的默认编码格式,也就是文件保存的格式。
在不对MyEclipse进行设置的时候,默认保存文件的编码,一般跟简体中文操作系统(如windows2000,windowsXP)的编码一致,即GBK。
在简体中文系统下,ANSI 编码代表 GBK编码;在日文操作系统下,ANSI 编码代表 JIS 编码。
Window-->Preferences-->General -
发送邮件
不懂事的小屁孩
send email
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
import org.apache.commons.mail.MultiPartEmail;
动画合集
换个号韩国红果果
htmlcss
动画 指一种样式变为另一种样式 keyframes应当始终定义0 100 过程
1 transition 制作鼠标滑过图片时的放大效果
css
.wrap{
width: 340px;height: 340px;
position: absolute;
top: 30%;
left: 20%;
overflow: hidden;
bor
网络最常见的攻击方式竟然是SQL注入
蓝儿唯美
sql注入
NTT研究表明,尽管SQL注入(SQLi)型攻击记录详尽且为人熟知,但目前网络应用程序仍然是SQLi攻击的重灾区。
信息安全和风险管理公司NTTCom Security发布的《2015全球智能威胁风险报告》表明,目前黑客攻击网络应用程序方式中最流行的,要数SQLi攻击。报告对去年发生的60亿攻击 行为进行分析,指出SQLi攻击是最常见的网络应用程序攻击方式。全球网络应用程序攻击中,SQLi攻击占
java笔记2
a-john
java
类的封装:
1,java中,对象就是一个封装体。封装是把对象的属性和服务结合成一个独立的的单位。并尽可能隐藏对象的内部细节(尤其是私有数据)
2,目的:使对象以外的部分不能随意存取对象的内部数据(如属性),从而使软件错误能够局部化,减少差错和排错的难度。
3,简单来说,“隐藏属性、方法或实现细节的过程”称为——封装。
4,封装的特性:
4.1设置
[Andengine]Error:can't creat bitmap form path “gfx/xxx.xxx”
aijuans
学习Android遇到的错误
最开始遇到这个错误是很早以前了,以前也没注意,只当是一个不理解的bug,因为所有的texture,textureregion都没有问题,但是就是提示错误。
昨天和美工要图片,本来是要背景透明的png格式,可是她却给了我一个jpg的。说明了之后她说没法改,因为没有png这个保存选项。
我就看了一下,和她要了psd的文件,还好我有一点
自己写的一个繁体到简体的转换程序
asialee
java转换繁体filter简体
今天调研一个任务,基于java的filter实现繁体到简体的转换,于是写了一个demo,给各位博友奉上,欢迎批评指正。
实现的思路是重载request的调取参数的几个方法,然后做下转换。
android意图和意图监听器技术
百合不是茶
android显示意图隐式意图意图监听器
Intent是在activity之间传递数据;Intent的传递分为显示传递和隐式传递
显式意图:调用Intent.setComponent() 或 Intent.setClassName() 或 Intent.setClass()方法明确指定了组件名的Intent为显式意图,显式意图明确指定了Intent应该传递给哪个组件。
隐式意图;不指明调用的名称,根据设
spring3中新增的@value注解
bijian1013
javaspring@Value
在spring 3.0中,可以通过使用@value,对一些如xxx.properties文件中的文件,进行键值对的注入,例子如下:
1.首先在applicationContext.xml中加入:
<beans xmlns="http://www.springframework.
Jboss启用CXF日志
sunjing
logjbossCXF
1. 在standalone.xml配置文件中添加system-properties:
<system-properties> <property name="org.apache.cxf.logging.enabled" value=&
【Hadoop三】Centos7_x86_64部署Hadoop集群之编译Hadoop源代码
bit1129
centos
编译必需的软件
Firebugs3.0.0
Maven3.2.3
Ant
JDK1.7.0_67
protobuf-2.5.0
Hadoop 2.5.2源码包
Firebugs3.0.0
http://sourceforge.jp/projects/sfnet_findbug
struts2验证框架的使用和扩展
白糖_
框架xmlbeanstruts正则表达式
struts2能够对前台提交的表单数据进行输入有效性校验,通常有两种方式:
1、在Action类中通过validatexx方法验证,这种方式很简单,在此不再赘述;
2、通过编写xx-validation.xml文件执行表单验证,当用户提交表单请求后,struts会优先执行xml文件,如果校验不通过是不会让请求访问指定action的。
本文介绍一下struts2通过xml文件进行校验的方法并说
记录-感悟
braveCS
感悟
再翻翻以前写的感悟,有时会发现自己很幼稚,也会让自己找回初心。
2015-1-11 1. 能在工作之余学习感兴趣的东西已经很幸福了;
2. 要改变自己,不能这样一直在原来区域,要突破安全区舒适区,才能提高自己,往好的方面发展;
3. 多反省多思考;要会用工具,而不是变成工具的奴隶;
4. 一天内集中一个定长时间段看最新资讯和偏流式博
编程之美-数组中最长递增子序列
bylijinnan
编程之美
import java.util.Arrays;
import java.util.Random;
public class LongestAccendingSubSequence {
/**
* 编程之美 数组中最长递增子序列
* 书上的解法容易理解
* 另一方法书上没有提到的是,可以将数组排序(由小到大)得到新的数组,
* 然后求排序后的数组与原数
读书笔记5
chengxuyuancsdn
重复提交struts2的token验证
1、重复提交
2、struts2的token验证
3、用response返回xml时的注意
1、重复提交
(1)应用场景
(1-1)点击提交按钮两次。
(1-2)使用浏览器后退按钮重复之前的操作,导致重复提交表单。
(1-3)刷新页面
(1-4)使用浏览器历史记录重复提交表单。
(1-5)浏览器重复的 HTTP 请求。
(2)解决方法
(2-1)禁掉提交按钮
(2-2)
[时空与探索]全球联合进行第二次费城实验的可能性
comsci
二次世界大战前后,由爱因斯坦参加的一次在海军舰艇上进行的物理学实验 -费城实验
至今给我们大家留下很多迷团.....
关于费城实验的详细过程,大家可以在网络上搜索一下,我这里就不详细描述了
在这里,我的意思是,现在
easy connect 之 ORA-12154: TNS: 无法解析指定的连接标识符
daizj
oracleORA-12154
用easy connect连接出现“tns无法解析指定的连接标示符”的错误,如下:
C:\Users\Administrator>sqlplus username/
[email protected]:1521/orcl
SQL*Plus: Release 10.2.0.1.0 – Production on 星期一 5月 21 18:16:20 2012
Copyright (c) 198
简单排序:归并排序
dieslrae
归并排序
public void mergeSort(int[] array){
int temp = array.length/2;
if(temp == 0){
return;
}
int[] a = new int[temp];
int
C语言中字符串的\0和空格
dcj3sjt126com
c
\0 为字符串结束符,比如说:
abcd (空格)cdefg;
存入数组时,空格作为一个字符占有一个字节的空间,我们
解决Composer国内速度慢的办法
dcj3sjt126com
Composer
用法:
有两种方式启用本镜像服务:
1 将以下配置信息添加到 Composer 的配置文件 config.json 中(系统全局配置)。见“例1”
2 将以下配置信息添加到你的项目的 composer.json 文件中(针对单个项目配置)。见“例2”
为了避免安装包的时候都要执行两次查询,切记要添加禁用 packagist 的设置,如下 1 2 3 4 5
高效可伸缩的结果缓存
shuizhaosi888
高效可伸缩的结果缓存
/**
* 要执行的算法,返回结果v
*/
public interface Computable<A, V> {
public V comput(final A arg);
}
/**
* 用于缓存数据
*/
public class Memoizer<A, V> implements Computable<A,
三点定位的算法
haoningabc
c算法
三点定位,
已知a,b,c三个顶点的x,y坐标
和三个点都z坐标的距离,la,lb,lc
求z点的坐标
原理就是围绕a,b,c 三个点画圆,三个圆焦点的部分就是所求
但是,由于三个点的距离可能不准,不一定会有结果,
所以是三个圆环的焦点,环的宽度开始为0,没有取到则加1
运行
gcc -lm test.c
test.c代码如下
#include "stdi
epoll使用详解
jimmee
clinux服务端编程epoll
epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linu
Hibernate对Enum的映射的基本使用方法
linzx0212
enumHibernate
枚举
/**
* 性别枚举
*/
public enum Gender {
MALE(0), FEMALE(1), OTHER(2);
private Gender(int i) {
this.i = i;
}
private int i;
public int getI
第10章 高级事件(下)
onestopweb
事件
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
孙子兵法
roadrunners
孙子兵法
始计第一
孙子曰:
兵者,国之大事,死生之地,存亡之道,不可不察也。
故经之以五事,校之以计,而索其情:一曰道,二曰天,三曰地,四曰将,五
曰法。道者,令民于上同意,可与之死,可与之生,而不危也;天者,阴阳、寒暑
、时制也;地者,远近、险易、广狭、死生也;将者,智、信、仁、勇、严也;法
者,曲制、官道、主用也。凡此五者,将莫不闻,知之者胜,不知之者不胜。故校
之以计,而索其情,曰
MySQL双向复制
tomcat_oracle
mysql
本文包括:
主机配置
从机配置
建立主-从复制
建立双向复制
背景
按照以下简单的步骤:
参考一下:
在机器A配置主机(192.168.1.30)
在机器B配置从机(192.168.1.29)
我们可以使用下面的步骤来实现这一点
步骤1:机器A设置主机
在主机中打开配置文件 ,
zoj 3822 Domination(dp)
阿尔萨斯
Mina
题目链接:zoj 3822 Domination
题目大意:给定一个N∗M的棋盘,每次任选一个位置放置一枚棋子,直到每行每列上都至少有一枚棋子,问放置棋子个数的期望。
解题思路:大白书上概率那一张有一道类似的题目,但是因为时间比较久了,还是稍微想了一下。dp[i][j][k]表示i行j列上均有至少一枚棋子,并且消耗k步的概率(k≤i∗j),因为放置在i+1~n上等价与放在i+1行上,同理