- 【codeforces 764B】Timofey and cubes
adgnfega11455
数据结构与算法
timelimitpertest1secondmemorylimitpertest256megabytesinputstandardinputoutputstandardoutputYoungTimofeyhasabirthdaytoday!Hegotkitofncubesasabirthdaypresentfromhisparents.Everycubehasanumberai,whichisw
- Nginx实战操作-动静分离
全栈_HhM
nginx运维
listen80;server_namelocalhost;location/{proxy_passhttp://192.168.12.1;proxy_set_headerHost$host;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;proxy_se
- 使用Transformer模型实现股票走势预测:深入解析和实操案例(基于Python和PyTorch)
AI_DL_CODE
pythontransformerpytorch股票预测
摘要:本文讨论了Transformer模型在股票市场预测中的应用,突出其自注意力机制在捕捉长期趋势和周期性变化方面的优势。文章详细介绍了模型理论、架构,并分析了其在股价预测中的优势和挑战。通过实操案例,展示了如何使用Python和PyTorch进行模型构建、训练和评估,包括数据预处理和性能评价。结果证实Transformer模型能有效预测股价,但需注意过拟合和数据量问题。未来研究将着眼于模型优化和
- PYTHON 常用算法 33个
trust Tomorrow
python算法python排序算法
文章目录冒泡排序(BubbleSort)选择排序(SelectionSort)插入排序(InsertionSort)快速排序(QuickSort)归并排序(MergeSort)堆排序(HeapSort)计数排序(CountingSort)基数排序(RadixSort)桶排序(BucketSort)希尔排序(ShellSort)二分查找(BinarySearch)线性查找(LinearSearch)
- python自动下载阿里云数据库数据_阿里云数据库Redis备份下载(Python)
weixin_39844426
#!/usr/bin/envpython3.6#coding=utf-8importosimporturllib.request,json,datetime,timeimportsslfromaliyunsdkcore.clientimportAcsClientfromaliyunsdkr_kvstore.request.v20150101.DescribeBackupsRequestimport
- docker-compose kafka安装及外部访问不到kafka问题
1010739073
Dockerkafkadocker
文章目录一、docker-compose.yml二、kafkamanager/kafka-manager连接zookeeper三、PHP生产者、消费者连接总结一、docker-compose.ymlversion:'3'services:zookeeper:image:bitnami/zookeepercontainer_name:zoorestart:alwaysports:-8181:2181
- Flink中定时器的使用_flink 定时器 ontimerf()方法获取 事件
字节全栈_vBr
flinkjava大数据
处理时间——调用Context.timerService().registerProcessingTimeTimer()注册;onTimer()在系统时间戳达到Timer设定的时间戳时触发。事件时间——调用Context.timerService().registerEventTimeTimer()注册;onTimer()在Flink内部水印达到或超过Timer设定的时间戳时触发。Context和
- Polysemy 清晰架构示例项目指南
林广红Winthrop
Polysemy清晰架构示例项目指南PolysemyCleanArchitectureShowcasinghowthePolysemylibrarycanbeusedtoimplementaRESTapplicationconformingtotheguidelinesoftheCleanArchitecturemodel.项目地址:https://gitcode.com/gh_mirrors/p
- JVM详细介绍——运行时数据区
Yinb
jvmjava开发语言
目录1.Java内存管理机制2.运行时数据区2.1方法区(MethodArea)—线程共享2.2Java堆(JavaHeap)—线程共享2.2.1新生代2.2.2老生代2.3程序计数器(ProgramCounterRegister)—线程私有2.3.1线程并发执行2.4本地方法栈(NativeMethodStack)—线程私有2.4.1为什么要使用本地方法2.5虚拟机栈(VirtualMachin
- JVM - 运行时数据区详细篇
星辰与晨曦
JVMjava后端jvm
文章目录运行时数据区的组成概述程序计数器(ProgramCounterRegister)概念计数器是线程私有的作用Java虚拟机栈(JavaVirtualMachine)虚拟机栈出现的背景栈和堆的区别什么是Java虚拟机栈本地方法栈(NativeMethodStack)Java堆概述堆内存区域的划分对象创建内存分配的过程新生代和老年代的配置比例JVM调优不同代的回收思想TLAB机制为什么会有TLA
- Python:动态粒子爱心
百年孤独_
计算机趣事随心所欲不逾矩pythonpygame开发语言
预览代码结构概述这段代码使用了pygame库来创建一个动态的图形窗口,绘制一个心形图案,并在其中显示闪烁的文本。代码主要分为以下几个部分:初始化和设置心形曲线的计算粒子类的定义生成粒子文本设置主循环1.初始化和设置importpygameimportrandomimportmathimportos#初始化pygamepygame.init()#屏幕尺寸WIDTH,HEIGHT=800,600scr
- CNOCR、PaddleOCR和Tesseract提取pdf中文字-个人记录
小趴菜日记
python开发语言
目录一、PyMuPDF二、CNOCR三、PaddleOCR四、Tesseract五、个人测试对比一、PyMuPDF1.安装PyMuPDFpipinstallpymupdf2.pdf转txt样例importosimportdatetimeimportfitz#fitz就是pipinstallPyMuPDFdefpyMuPDF_fitz(pdfPath):startTime_pdf2img=datet
- 如何使用 HTML5 的 Canvas 实现动画效果?
破碎的天堂鸟
学习教程html5前端html
要使用HTML5的Canvas实现动画效果,可以遵循以下步骤和方法:1:创建Canvas元素:首先,在HTML文档中创建一个元素,用于显示动画。2:获取Canvas上下文:使用JavaScript获取Canvas的2D渲染上下文,以便进行绘图操作。varcanvas=document.getElementById("myCanvas");varctx=canvas.getContext("2d")
- 单点登录SSO:概述与示例
百宝门-SSO顾问
单点登录(SSO)单点登录sso身份管理百宝门oracleesso
原文是一个系列:http://www.cnblogs.com/baibaomen/p/sso.html,曾上博客园推荐榜首。建议看原文,此处排版全乱了。转载需注明原文链接。单点登录SSO概述本系列将由浅入深的,带大家掌握最新单点登录SSO方案选型,以及架构开发实战。系列将结合示例、源码以及演示视频,让大家能够直观、深入学习。文末附5个满足不同单点登录场景的gif动画演示。本系列后继文章会深入它们的
- RabbitMQ持久化队列配置修改问题
S-X-S
Bugrabbitmq分布式
文章目录1.问题产生2.问题解决1.询问gpt2.独立思考1.问题产生我在给一个普通队列去绑定死信交换机和死信队列的时候,发现总是报错x-dead-letter-exchange的属性为noneERROR[PFTID:][Module:defaultModule]org.springframework.amqp.rabbit.connection.CachingConnectionFactory-
- mybatis的mapper动态代理开发,mapper引入的2种方式
打豆豆。
mybatismapper代理mybatis动态代理开发
mybatis-config.xml主配置文件中,mapper引入的两种方式:①通过xml路径②通过mapper接口的class路径-->使用mapper代理开发,注意namespace:和dao中UserDao对象一致;1,session获取userdao.class对象2,加载mapper.xml3,获取sql的statement4,statement把sql执行结果映射到结果集(User类,
- 群晖web文件服务器docker,群晖docker搭建数据库服务器
Kuchiki Touko
群晖docker搭建数据库服务器内容精选换一换本手册基于华为云关系型数据库实践所编写,用于指导您完成相关设置,购买更符合业务的数据库实例。创建一个外部服务器。外部服务器是存储OBS服务器信息或其他同构集群信息的载体。默认只有系统管理员才可以创建外部服务器,否则需要对所使用的FOREIGNDATAWRAPPER授权才可以创建,授权语法为:其中fdw_name为FOREIGNDATAWRAPPER的名
- 【游戏开发】Unity手游使用XLua热更新增UI界面方法
归暮亭
游戏开发游戏开发c#lua游戏unity
**准备(前置条件):Xlua相关文件已导入工程,已经能够进行patchfile热更修改一、C#写一个LuaWindow基类包含3个步骤:1.读入lua文件:publicstaticboolLoadLuaScript(stringwindowName){if(!mLuaWindowFileDic.ContainsKey(windowName)){if(!LoadXLuaFile("..."+".b
- 《苍穹外卖》项目学习记录-Day10订单状态定时处理
蝴蝶不愿意
学习java
利用Cron表达式生成器生成Cron表达式1.处理超时订单查询订单表把超时的订单查询出来,也就是订单的状态为待付款,下单的时间已经超过了15分钟。//select*fromorderswherestatus=?andorder_timeupdateorderscancel_reason=#{cancelReason},rejection_reason=#{rejectionReason},canc
- Mac 安装Mysql启动Mysql以及数据库的常规操作
荆州克莱
面试题汇总与解析springcloudspringbootspring技术css3
Mac安装Mysql启动Mysql以及数据库的常规操作一、mysql的安装1、登录官方网站:dev.mysql.com/downloads/mysql/二、查看系统架构```uname-m```在MAC中:如果输出结果是x86_64,则表示你的系统是x86-64架构。如果输出结果是arm64,则表示你的系统是arm64架构。根据自身系统架构进行下载安装2、安装完成打开系统设置3、安全模式启动```
- Python——pyqt5——消息框(QMessageBox)
少年痴北城
python
一、提供的类型QMessageBox.information信息框QMessageBox.question问答框QMessageBox.warning警告QMessageBox.ctitical危险QMessageBox.about关于二、引用fromPyQt5.QtWidgetsimportQMessageBox三、代码示例#消息框#self当前窗口的夫窗口#消息:信息QMessageBox.i
- priority_queue的创建_结构体类型(重载小于运算符)c++
h^hh
算法开发语言c++数据结构
当优先级队列里面存的是一个自定义(结构体)类型,我们有两种方式,一个是用内置类型的方式,在priority_queue,less,把int改成结构体的名字就可以了,但此时就不能用less了,因为less默认是对内置类型使用的,如果less#includeusingnamespacestd;structnode{inta,b,c;//重载就可以了booloperatorx.b;}};voidtest
- PyQT5 QMessageBox对话框设置
自动驾驶探索站
python开发语言qt5
PyQT5QMessageBox对话框设置1介绍2演示3代码1介绍 QMessageBox是一种通用的弹出式对话框,用于显示消息,允许用户通过单击不同的标准按钮对消息进行反馈。提供了许多常用的弹出式对话框,如提示、警告、错误、询问、关于等对话框。这些不同类型的QMessageBox对话框只是显示时的图标不同,其他功能是一样的。 QMessageBox类中的常用方法如下:方法描述QMessage
- Pyqt5_QMessageBox
weixin_33850890
c/c++
QMessageBoxheader:会话窗标题info:会话窗内容#弹出5种不同类型的消息框reply1=QMessageBox.information(self,"title","infocontent",QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes)reply2=QMessageBox.question(self,"title","questio
- 隐马尔可夫模型(Hidden Markov Model, HMM) 和 最大熵马尔可夫模型(Maximum Entropy Markov Model, MEMM)
苏西月
人工智能
1.HMM(隐马尔可夫模型)HMM是生成式模型(GenerativeModel)HMM通过建模整个联合概率分布P(X,Y)P(X,Y)P(X,Y)来进行序列标注,其中:X=(x1,x2,...,xn)X=(x_1,x_2,...,x_n)X=(x1,x2,...,xn)是观测序列(例如一个句子中的单词)。Y=(y1,y2,...,yn)Y=(y_1,y_2,...,y_n)Y=(y1,y2,...
- Anaconda升级的解决方法
一头大学牲
pythonconda
文章目录关于conda升级问题1.在原Anaconda版本上进行更新升级2.就是重装Anaconda镜像源配置的参数解释:1.conda-forge2.bioconda3.menpo关于conda升级问题,Anaconda各种版本镜像下载地址:关于conda升级问题1.在原Anaconda版本上进行更新升级更新过程:如何更新Anaconda版本过程中出现的一些问题:InvalidVersionSp
- Python - poetry(6)pyproject.toml 文件详解
小菠萝测试笔记
mysqlpythonjavamavengradle
pyproject.toml文件tool.poetry是最基本的section,然后它由多个sections组成namepackage名字,必填versionpackage版本号,必填descriptionpackage描述,必填licensepackage许可证,可选authorspackage作者,必填maintainerspackage维护者,可选readmepackagereadme文件,
- 【llm对话系统】大模型 Llama、Qwen 和 ChatGLM 的网络结构和训练方法对比
kakaZhui
llama人工智能AIGCchatgptpython
1.引言近年来,大型语言模型(LLM)取得了令人瞩目的进展,其中Llama、Qwen和ChatGLM是三个备受关注的开源模型。它们都在Transformer架构的基础上进行了改进和优化,并在各种NLP任务上取得了优异的性能。本文将深入分析Llama、Qwen和ChatGLM的网络结构和训练方法,比较它们的异同以及各自的优势。2.模型结构对比特性LlamaQwenChatGLM基础架构Decoder
- 小程序的协同工作和发布
Loren_Wang
基础学习微信小程序小程序微信
小程序的协同工作参考链接:https://developers.weixin.qq.com/miniprogram/dev/framework/quickstart/release.html#%E5%8D%8F%E5%90%8C%E5%B7%A5%E4%BD%9C各权限功能说明开发者权限:可使用小程序开发者工具及开发版小程序进行开发体验者权限:可使用体验版小程序登录:可登录小程序管理后台,无需管理
- 回调 函数解决异步,promise解决异步
css趣多多
java前端javascript
created(){//===============================================回调函数解决异步//this.getList((res)=>{//this.$message.success("获取数据成功");//constfirstData=res.data;////再次获取数据,需要依赖于第一次获取的数据//this.getList2((finalData
- 多线程编程之join()方法
周凡杨
javaJOIN多线程编程线程
现实生活中,有些工作是需要团队中成员依次完成的,这就涉及到了一个顺序问题。现在有T1、T2、T3三个工人,如何保证T2在T1执行完后执行,T3在T2执行完后执行?问题分析:首先问题中有三个实体,T1、T2、T3, 因为是多线程编程,所以都要设计成线程类。关键是怎么保证线程能依次执行完呢?
Java实现过程如下:
public class T1 implements Runnabl
- java中switch的使用
bingyingao
javaenumbreakcontinue
java中的switch仅支持case条件仅支持int、enum两种类型。
用enum的时候,不能直接写下列形式。
switch (timeType) {
case ProdtransTimeTypeEnum.DAILY:
break;
default:
br
- hive having count 不能去重
daizj
hive去重having count计数
hive在使用having count()是,不支持去重计数
hive (default)> select imei from t_test_phonenum where ds=20150701 group by imei having count(distinct phone_num)>1 limit 10;
FAILED: SemanticExcep
- WebSphere对JSP的缓存
周凡杨
WAS JSP 缓存
对于线网上的工程,更新JSP到WebSphere后,有时会出现修改的jsp没有起作用,特别是改变了某jsp的样式后,在页面中没看到效果,这主要就是由于websphere中缓存的缘故,这就要清除WebSphere中jsp缓存。要清除WebSphere中JSP的缓存,就要找到WAS安装后的根目录。
现服务
- 设计模式总结
朱辉辉33
java设计模式
1.工厂模式
1.1 工厂方法模式 (由一个工厂类管理构造方法)
1.1.1普通工厂模式(一个工厂类中只有一个方法)
1.1.2多工厂模式(一个工厂类中有多个方法)
1.1.3静态工厂模式(将工厂类中的方法变成静态方法)
&n
- 实例:供应商管理报表需求调研报告
老A不折腾
finereport报表系统报表软件信息化选型
引言
随着企业集团的生产规模扩张,为支撑全球供应链管理,对于供应商的管理和采购过程的监控已经不局限于简单的交付以及价格的管理,目前采购及供应商管理各个环节的操作分别在不同的系统下进行,而各个数据源都独立存在,无法提供统一的数据支持;因此,为了实现对于数据分析以提供采购决策,建立报表体系成为必须。 业务目标
1、通过报表为采购决策提供数据分析与支撑
2、对供应商进行综合评估以及管理,合理管理和
- mysql
林鹤霄
转载源:http://blog.sina.com.cn/s/blog_4f925fc30100rx5l.html
mysql -uroot -p
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
[root@centos var]# service mysql
- Linux下多线程堆栈查看工具(pstree、ps、pstack)
aigo
linux
原文:http://blog.csdn.net/yfkiss/article/details/6729364
1. pstree
pstree以树结构显示进程$ pstree -p work | grep adsshd(22669)---bash(22670)---ad_preprocess(4551)-+-{ad_preprocess}(4552) &n
- html input与textarea 值改变事件
alxw4616
JavaScript
// 文本输入框(input) 文本域(textarea)值改变事件
// onpropertychange(IE) oninput(w3c)
$('input,textarea').on('propertychange input', function(event) {
console.log($(this).val())
});
- String类的基本用法
百合不是茶
String
字符串的用法;
// 根据字节数组创建字符串
byte[] by = { 'a', 'b', 'c', 'd' };
String newByteString = new String(by);
1,length() 获取字符串的长度
&nbs
- JDK1.5 Semaphore实例
bijian1013
javathreadjava多线程Semaphore
Semaphore类
一个计数信号量。从概念上讲,信号量维护了一个许可集合。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行计数,并采取相应的行动。
S
- 使用GZip来压缩传输量
bijian1013
javaGZip
启动GZip压缩要用到一个开源的Filter:PJL Compressing Filter。这个Filter自1.5.0开始该工程开始构建于JDK5.0,因此在JDK1.4环境下只能使用1.4.6。
PJL Compressi
- 【Java范型三】Java范型详解之范型类型通配符
bit1129
java
定义如下一个简单的范型类,
package com.tom.lang.generics;
public class Generics<T> {
private T value;
public Generics(T value) {
this.value = value;
}
}
- 【Hadoop十二】HDFS常用命令
bit1129
hadoop
1. 修改日志文件查看器
hdfs oev -i edits_0000000000000000081-0000000000000000089 -o edits.xml
cat edits.xml
修改日志文件转储为xml格式的edits.xml文件,其中每条RECORD就是一个操作事务日志
2. fsimage查看HDFS中的块信息等
&nb
- 怎样区别nginx中rewrite时break和last
ronin47
在使用nginx配置rewrite中经常会遇到有的地方用last并不能工作,换成break就可以,其中的原理是对于根目录的理解有所区别,按我的测试结果大致是这样的。
location /
{
proxy_pass http://test;
- java-21.中兴面试题 输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随意取几个数 , 使其和等于 m
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
public class CombinationToSum {
/*
第21 题
2010 年中兴面试题
编程求解:
输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随意取几个数 ,
使其和等
- eclipse svn 帐号密码修改问题
开窍的石头
eclipseSVNsvn帐号密码修改
问题描述:
Eclipse的SVN插件Subclipse做得很好,在svn操作方面提供了很强大丰富的功能。但到目前为止,该插件对svn用户的概念极为淡薄,不但不能方便地切换用户,而且一旦用户的帐号、密码保存之后,就无法再变更了。
解决思路:
删除subclipse记录的帐号、密码信息,重新输入
- [电子商务]传统商务活动与互联网的结合
comsci
电子商务
某一个传统名牌产品,过去销售的地点就在某些特定的地区和阶层,现在进入互联网之后,用户的数量群突然扩大了无数倍,但是,这种产品潜在的劣势也被放大了无数倍,这种销售利润与经营风险同步放大的效应,在最近几年将会频繁出现。。。。
如何避免销售量和利润率增加的
- java 解析 properties-使用 Properties-可以指定配置文件路径
cuityang
javaproperties
#mq
xdr.mq.url=tcp://192.168.100.15:61618;
import java.io.IOException;
import java.util.Properties;
public class Test {
String conf = "log4j.properties";
private static final
- Java核心问题集锦
darrenzhu
java基础核心难点
注意,这里的参考文章基本来自Effective Java和jdk源码
1)ConcurrentModificationException
当你用for each遍历一个list时,如果你在循环主体代码中修改list中的元素,将会得到这个Exception,解决的办法是:
1)用listIterator, 它支持在遍历的过程中修改元素,
2)不用listIterator, new一个
- 1分钟学会Markdown语法
dcj3sjt126com
markdown
markdown 简明语法 基本符号
*,-,+ 3个符号效果都一样,这3个符号被称为 Markdown符号
空白行表示另起一个段落
`是表示inline代码,tab是用来标记 代码段,分别对应html的code,pre标签
换行
单一段落( <p>) 用一个空白行
连续两个空格 会变成一个 <br>
连续3个符号,然后是空行
- Gson使用二(GsonBuilder)
eksliang
jsongsonGsonBuilder
转载请出自出处:http://eksliang.iteye.com/blog/2175473 一.概述
GsonBuilder用来定制java跟json之间的转换格式
二.基本使用
实体测试类:
温馨提示:默认情况下@Expose注解是不起作用的,除非你用GsonBuilder创建Gson的时候调用了GsonBuilder.excludeField
- 报ClassNotFoundException: Didn't find class "...Activity" on path: DexPathList
gundumw100
android
有一个工程,本来运行是正常的,我想把它移植到另一台PC上,结果报:
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.mobovip.bgr/com.mobovip.bgr.MainActivity}: java.lang.ClassNotFoundException: Didn't f
- JavaWeb之JSP指令
ihuning
javaweb
要点
JSP指令简介
page指令
include指令
JSP指令简介
JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。
JSP指令的基本语法格式:
<%@ 指令 属性名="
- mac上编译FFmpeg跑ios
啸笑天
ffmpeg
1、下载文件:https://github.com/libav/gas-preprocessor, 复制gas-preprocessor.pl到/usr/local/bin/下, 修改文件权限:chmod 777 /usr/local/bin/gas-preprocessor.pl
2、安装yasm-1.2.0
curl http://www.tortall.net/projects/yasm
- sql mysql oracle中字符串连接
macroli
oraclesqlmysqlSQL Server
有的时候,我们有需要将由不同栏位获得的资料串连在一起。每一种资料库都有提供方法来达到这个目的:
MySQL: CONCAT()
Oracle: CONCAT(), ||
SQL Server: +
CONCAT() 的语法如下:
Mysql 中 CONCAT(字串1, 字串2, 字串3, ...): 将字串1、字串2、字串3,等字串连在一起。
请注意,Oracle的CON
- Git fatal: unab SSL certificate problem: unable to get local issuer ce rtificate
qiaolevip
学习永无止境每天进步一点点git纵观千象
// 报错如下:
$ git pull origin master
fatal: unable to access 'https://git.xxx.com/': SSL certificate problem: unable to get local issuer ce
rtificate
// 原因:
由于git最新版默认使用ssl安全验证,但是我们是使用的git未设
- windows命令行设置wifi
surfingll
windowswifi笔记本wifi
还没有讨厌无线wifi的无尽广告么,还在耐心等待它慢慢启动么
教你命令行设置 笔记本电脑wifi:
1、开启wifi命令
netsh wlan set hostednetwork mode=allow ssid=surf8 key=bb123456
netsh wlan start hostednetwork
pause
其中pause是等待输入,可以去掉
2、
- Linux(Ubuntu)下安装sysv-rc-conf
wmlJava
linuxubuntusysv-rc-conf
安装:sudo apt-get install sysv-rc-conf 使用:sudo sysv-rc-conf
操作界面十分简洁,你可以用鼠标点击,也可以用键盘方向键定位,用空格键选择,用Ctrl+N翻下一页,用Ctrl+P翻上一页,用Q退出。
背景知识
sysv-rc-conf是一个强大的服务管理程序,群众的意见是sysv-rc-conf比chkconf
- svn切换环境,重发布应用多了javaee标签前缀
zengshaotao
javaee
更换了开发环境,从杭州,改变到了上海。svn的地址肯定要切换的,切换之前需要将原svn自带的.svn文件信息删除,可手动删除,也可通过废弃原来的svn位置提示删除.svn时删除。
然后就是按照最新的svn地址和规范建立相关的目录信息,再将原来的纯代码信息上传到新的环境。然后再重新检出,这样每次修改后就可以看到哪些文件被修改过,这对于增量发布的规范特别有用。
检出