基于C语言中的sort如此这么方便,自然而然,java中也有类似C的sort函数。1.普通数组:Arrays.sort(数组名,开始位置,结束位置)。2.类中属性排序:模板:classA{intn;}classcmpimplementComparator{升序:publicintcompare(Aa,Ab){if(a.n
python爬虫--安装XPath Helper
S903784597
python爬虫开发语言
给chrome浏览器安装xpath插件。-从网盘下载xpath的插件文件链接:https://pan.baidu.com/s/1B85d5cLDyAz1xUQqmL3uug?pwd=3306提取码:3306-在chrome中输入chrome://extensions/打开扩展程序。-将从百度网盘中下载的xpath.zip文件直接拖到浏览器的扩展程序页面中-得到chrome插件,将插件开关开启,并且
华为的云端训练算力与迭代效率
AI大模型应用之禅
DeepSeekR1&AI大模型与大数据计算科学神经计算深度学习神经网络大数据人工智能大型语言模型AIAGILLMJavaPython架构设计AgentRPA
华为云、云端训练、算力、迭代效率、人工智能、深度学习、模型训练、分布式训练、优化算法1.背景介绍人工智能(AI)技术近年来发展迅速,深度学习作为其核心驱动力,在图像识别、自然语言处理、语音识别等领域取得了突破性进展。然而,深度学习模型的训练需要海量数据和强大的计算资源,这成为AI技术发展面临的瓶颈之一。云计算作为一种新型的计算模式,为深度学习提供了强大的算力支持。华为云作为国内领先的云计算平台,在
使用Yuan 2.0与LangChain构建智能聊天应用:完整指南
scaFHIO
langchainpython
技术背景介绍Yuan2.0是IEIT系统开发的新一代基础大语言模型,包括Yuan2.0-102B、Yuan2.0-51B和Yuan2.0-2B三种版本。相比之前的Yuan1.0,Yuan2.0使用了更广泛的高质量预训练数据,并通过指令微调数据集增强了模型的语义理解、数学推理、编程知识等能力。为了方便开发者集成,Yuan2.0提供了兼容OpenAIAPI的服务接口。本文将介绍如何通过LangChai
SpringCloud微服务架构之断路器,如何解决微服务中的雪崩效应?
2401_89225002
架构微服务springcloud
图3.2极端情况下的微服务网状调用示意图最常见的场景就是当负载过高时,如果某个服务的性能或抗压能力不好,那么当请求到这个服务时就需要等待或直接出现超时、不可用等情况。在图3.2中,一旦服务C出现问题,可能会影响服务A和服务B,虽然服务D、E、F并没有直接与服务C相互依赖,但是服务C导致了服务A和服务B的阻塞,就会间接地影响服务D、E、F,从而让整个系统变得缓慢或不可用,这就是微服务的雪崩效应。微服
正则表达式regex
GotoMeiben
正则表达式
工具网站:RegExr:Learn,Build,&TestRegEx正则表达式(RegularExpression,Regex)是一种强大的字符串匹配工具,广泛用于文本搜索、数据处理和输入验证等场景。无论是Python、Java、JavaScript还是Shell脚本,Regex都是不可或缺的技能。本文将深入介绍正则表达式的各种用法,包括:基本匹配(字母、数字)特殊符号^$\b量词{}*+?字符类
训练与优化
钰见梵星
小土堆PyTorch深度学习深度学习pytorch人工智能
训练与优化损失函数与反向传播损失函数能够衡量神经网络输出与目标值之间的误差,同时为反向传播提供依据,计算梯度来优化网络中的参数。torch.nn.L1Loss计算所有预测值与真实值之间的绝对差。参数为reduction:'none':不对损失进行任何求和或平均,返回每个元素的损失。'mean':对损失进行平均,默认选项。'sum':对所有样本的损失进行求和。importtorchinput=tor
Pytorch实现之利用特征分布的差异来指导GAN的训练
这张生成的图像能检测吗
优质GAN模型训练自己的数据集GAN系列pytorch生成对抗网络人工智能神经网络深度学习计算机视觉机器学习
简介简介:FIDGAN通过将FID损失引入GAN的训练过程,显著提升了生成图像的质量。其核心思想是利用特征分布的差异来指导生成器的训练,同时通过使用轻量级的MobileNet-v3提高了计算效率。这种方法在图像生成任务中具有广泛的应用前景。论文题目:FIDGAN:AGenerativeAdversarialNetworkwithAnInceptionDistance(FIDGAN:具有初始距离的生
15. 三数之和
炫云云
大数据算法和数据结构leetcode算法数据结构
15.三数之和1.两数之和15.三数之和18.四数之和20、n数之和给你一个包含n个整数的数组nums,判断nums中是否存在三个元素*a,b,c,*使得a+b+c=0?请你找出所有和为0且不重复的三元组。**注意:**答案中不可以包含重复的三元组示例1:输入:nums=[-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例2:
如何在C#项目中获取当前页面的URL地址
weixin_43250628
后端javascript前端html
这篇文章给大家介绍如何在C#项目中获取当前页面的URL地址,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、通过C#获取当前页面的URL复制代码代码如下:stringurl=Request.Url.AbsoluteUri;//结果:http://www.baidu.com/web/index.aspxstringhost=Request.Url.Host;//结果:www.b
使用LangChain与Clarifai模型进行交互
vaidfl
langchain交互python
在现代AI应用开发中,Clarifai提供了一个完整的AI生命周期管理平台,包括数据探索、数据标注、模型训练、评估和推理。本文将探讨如何使用LangChain库与Clarifai的模型进行交互。技术背景介绍Clarifai是一个全面的AI平台,专注于模型的构建和部署。要开始使用Clarifai,你需要一个账户和个人访问令牌(PAT)。确保先在Clarifai获取或创建你的PAT。核心原理解析通过L
【深度学习pytorch-93】Transformer 相比 RNN 的优势
华东算法王
DL-pytorch深度学习pytorchtransformer
Transformer相比RNN的优势Transformer和RNN(循环神经网络)都是自然语言处理(NLP)领域的重要架构,但它们的工作原理和应用方式有很大不同。Transformer由于其独特的结构和机制,在多个方面优于RNN。以下是Transformer相比RNN的主要优势:1.并行计算能力RNN的局限性RNN是按顺序处理输入的,即每个时间步的输出都依赖于前一个时间步的输出。这意味着,在训练
2024年03月CCF-GESP编程能力等级认证Python编程四级真题解析
码农StayUp
pythonCCFGESP青少年编程
本文收录于专栏《Python等级认证CCF-GESP真题解析》,专栏总目录:点这里,订阅后可阅读专栏内所有文章。一、单选题(共15题,共30分)第1题小杨的父母最近刚刚给他买了一块华为手表,他说手表上跑的是鸿蒙,这个鸿蒙是.()A.小程序B.计时器C.操作系统D.神话人物答案:C本题属于考察计算机基础知识。鸿蒙是操作系统,操作系统是管理计算机硬件与软件资源的程序,同时也是计算机系统的内核与基石。它
蓝桥2023省赛B 题解
快雪_时晴
算法图论数据结构
蓝桥2023省赛B题解T1冶炼金属题目描述小蓝有一个神奇的炉子用于将普通金属O冶炼成为一种特殊金属X。这个炉子有一个称作转换率的属性V,V是一个正整数,这意味着消耗V个普通金属O恰好可以冶炼出一个特殊金属X,当普通金属O的数目不足V时,无法继续冶炼。现在给出了N条冶炼记录,每条记录中包含两个整数A和B,这表示本次投入了A个普通金属O,最终冶炼出了B个特殊金属X。每条记录都是独立的,这意味着上一次没
拔河 24蓝桥省b
亿秒签到
算法
#includeusingnamespacestd;#defineintlonglong#defineendl'\n'signedmain(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);intn;cin>>n;vectora(n+1);multisets;for(inti=1;i>a[i],a[i]=a[i-1]+a[i];for(inti=1;
24蓝桥省赛B-数字接龙
亿秒签到
算法图论数据结构
#includeusingnamespacestd;constintN=13;intmp[N][N],flag,n,k;boolvis[N][N];intf[N][N][N][N];//存储路径,用于判断是否斜着走,是本题剪枝的难点vectorans;vectorres;intdx[]={-1,-1,0,1,1,1,0,-1};intdy[]={0,1,1,1,0,-1,-1,-1};boolch
B-4 拍拍乐
RAN_PAND
算法c++数据结构
“拍拍乐”游戏是将小朋友们排成n排,每排m个人。游戏开始后,每位小朋友手机上会同时收到一个数字指令:1代表向前、2代表向后、3代表向左、4代表向右。小朋友要按照指令向指定方向的小朋友拍一下。问有多少小朋友被不止一个小伙伴拍到?注意:在平面图中,一个格子的上方为“前”、下方为“后”。位于边角的小朋友有可能拍到空气,那也是允许的。输入格式:输入第一行给出2个正整数n和m(2≤n,m≤100),依次为座
STL介绍2:algorithm头文件下的常用函数
RAN_PAND
c++算法开发语言
一、max()、min()、abs()和swap()#include#includeusingnamespacestd;intmain(){inta=2,b=-3;cout#includeusingnamespacestd;boolcmp(inta,intb){returna>b;//当a>b的时候让a排在b的前面}intmain(){inta[5]={2,3,1,7,8};sort(a,a+5)
吐血整理!权重持久化方案优化,让你的模型性能飙升
盼达思文体科创
经验分享
吐血整理!权重持久化方案优化,让你的模型性能飙升引言你是否在做深度学习项目时,遭遇过模型训练结果无法有效保存,导致之前的努力付诸东流的痛苦?又或者在模型权重持久化时,发现保存和加载的速度极慢,严重影响项目进度?今天咱们就来好好聊聊权重持久化方案的优化,帮你解决这些让人头疼的问题!核心内容❗传统方案痛点:大多数人都踩过的坑在很多深度学习项目里,大家常用的权重持久化方案存在不少问题。比如说,使用普通的
吐血整理!训练时数据增强策略调整,让模型性能飙升
盼达思文体科创
经验分享
吐血整理!训练时数据增强策略调整,让模型性能飙升引言你是否遇到过模型训练效果不佳,明明投入了大量数据,可模型的准确率、泛化能力就是提不上去?其实啊,很多时候问题就出在数据增强策略上。不合理的数据增强方式,就像给运动员吃错了补药,不仅起不到提升效果,还可能适得其反。今天我就来和你好好聊聊训练时数据增强策略的调整,让你的模型也能“脱胎换骨”!核心内容策略选择误区:80%的人都会犯的错场景化描述:你满心
吐血整理!模型版本回滚机制支持,让你的模型训练不再走弯路
盼达思文体科创
经验分享
吐血整理!模型版本回滚机制支持,让你的模型训练不再走弯路引言你是否遇到过模型训练过程中,因为一个小失误导致之前的努力白费,只能从头再来的糟心事?为什么辛辛苦苦训练出来的模型,突然效果变差,却找不到问题所在?别担心,模型版本回滚机制的支持,能帮你轻松解决这些难题。接下来,我就带你深入了解这个超实用的技术。核心内容问题根源:模型训练中的常见陷阱在模型训练的过程中,你可能会遇到各种问题。比如,你在调整参
吐血整理!模型热加载能力大比拼,谁才是真正王者?
盼达思文体科创
经验分享
吐血整理!模型热加载能力大比拼,谁才是真正王者?引言你是否在开发过程中,为了模型更新而频繁重启服务,浪费大量时间?又是否疑惑为什么有些模型加载速度快如闪电,而有些却慢得像蜗牛?今天就带你深入了解模型热加载能力的支持对比,让你不再为模型加载问题而烦恼!核心内容模型热加载概念科普场景化描述:想象一下,你正在运营一个基于机器学习模型的在线推荐系统。当你训练出了一个新的、性能更好的模型时,如果不能进行热加
吐血整理!过拟合抑制策略调整方法大揭秘,让模型性能飙升
盼达思文体科创
经验分享
吐血整理!过拟合抑制策略调整方法大揭秘,让模型性能飙升引言你是否遇到过模型在训练集上表现完美,可一到测试集就“原形毕露”的糟心情况?为啥模型训练得好好的,实际应用时却差强人意呢?这其实就是过拟合在捣乱!接下来,我就带你深入了解过拟合抑制策略的调整方法,让你的模型告别过拟合,重获新生!核心内容数据层面的调整:扩充与清洗的力量场景化描述:你想象一下,你训练模型的数据集就像做饭的食材,如果食材种类单一,
吐血整理!梯度累积和优化器配置差异,让模型训练效果天差地别!
盼达思文体科创
经验分享
吐血整理!梯度累积和优化器配置差异,让模型训练效果天差地别!引言你是否还在为模型训练效果不佳而苦恼?明明花费了大量时间和精力,模型的性能却始终无法达到预期。其实,很多时候问题可能就出在梯度累积和优化器配置上。不同的配置会对模型训练产生巨大的影响,接下来我就带你详细了解其中的奥秘。核心内容避坑指南:梯度累积和优化器配置易踩的雷区场景化描述:你满心欢喜地开始训练模型,却发现训练过程中损失函数波动剧烈,
还在为模型权重共享效率发愁?模型权重共享策略优化让效果飙升
盼达思文体科创
经验分享
还在为模型权重共享效率发愁?模型权重共享策略优化让效果飙升引言你是否在进行模型训练时,常常被漫长的训练时间和巨大的计算资源消耗搞得焦头烂额?为什么明明使用了模型权重共享策略,却还是达不到理想的训练效果和效率?今天咱们就来深入剖析模型权重共享策略的优化,让你在模型训练的道路上少走弯路。核心内容问题根源:模型权重共享常见痛点场景化描述:你满心欢喜地使用模型权重共享策略,想着能大大提升训练效率,可实际情
图像识别技术与应用第三课
哈哈~156
scikit-learn
一、感知机感知机由美国学者FrankRosenblatt在1957年提出,它根据输入x、权重w和偏差b进行输出,输出结果是二分类(0或1),这和输出实数的回归以及输出概率用于多分类的Softmax不同。像与门、与非门、或门都能通过设定合适的权重和偏差实现。w称为权重:控制输入信号的重要性的参数b称为偏置:偏置是调整神经元被激活的容易程度参数感知机的局限性:感知机的局限性就是只能表示由一条直线分割的
矩阵求逆(JAVA)初等行变换
qiuwanchi
矩阵求逆(JAVA)
package gaodai.matrix;
import gaodai.determinant.DeterminantCalculation;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* 矩阵求逆(初等行变换)
* @author 邱万迟
*
JDK timer
antlove
javajdkschedulecodetimer
1.java.util.Timer.schedule(TimerTask task, long delay):多长时间(毫秒)后执行任务
2.java.util.Timer.schedule(TimerTask task, Date time):设定某个时间执行任务
3.java.util.Timer.schedule(TimerTask task, long delay,longperiod
JVM调优总结 -Xms -Xmx -Xmn -Xss
coder_xpf
jvm应用服务器
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。
典型设置:
java -Xmx
JDBC连接数据库
Array_06
jdbc
package Util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCUtil {
//完
Unsupported major.minor version 51.0(jdk版本错误)
oloz
java
java.lang.UnsupportedClassVersionError: cn/support/cache/CacheType : Unsupported major.minor version 51.0 (unable to load class cn.support.cache.CacheType)
at org.apache.catalina.loader.WebappClassL
用多个线程处理1个List集合
362217990
多线程threadlist集合
昨天发了一个提问,启动5个线程将一个List中的内容,然后将5个线程的内容拼接起来,由于时间比较急迫,自己就写了一个Demo,希望对菜鸟有参考意义。。
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
public c
JSP简单访问数据库
香水浓
sqlmysqljsp
学习使用javaBean,代码很烂,仅为留个脚印
public class DBHelper {
private String driverName;
private String url;
private String user;
private String password;
private Connection connection;
privat
Flex4中使用组件添加柱状图、饼状图等图表
AdyZhang
Flex
1.添加一个最简单的柱状图
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
<?xml version=
"1.0"&n
Android 5.0 - ProgressBar 进度条无法展示到按钮的前面
aijuans
android
在低于SDK < 21 的版本中,ProgressBar 可以展示到按钮前面,并且为之在按钮的中间,但是切换到android 5.0后进度条ProgressBar 展示顺序变化了,按钮再前面,ProgressBar 在后面了我的xml配置文件如下:
[html]
view plain
copy
<RelativeLa
查询汇总的sql
baalwolf
sql
select list.listname, list.createtime,listcount from dream_list as list , (select listid,count(listid) as listcount from dream_list_user group by listid order by count(
Linux du命令和df命令区别
BigBird2012
linux
1,两者区别
du,disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和。
AngularJS中的$apply,用还是不用?
bijian1013
JavaScriptAngularJS$apply
在AngularJS开发中,何时应该调用$scope.$apply(),何时不应该调用。下面我们透彻地解释这个问题。
但是首先,让我们把$apply转换成一种简化的形式。
scope.$apply就像一个懒惰的工人。它需要按照命
[Zookeeper学习笔记十]Zookeeper源代码分析之ClientCnxn数据序列化和反序列化
bit1129
zookeeper
ClientCnxn是Zookeeper客户端和Zookeeper服务器端进行通信和事件通知处理的主要类,它内部包含两个类,1. SendThread 2. EventThread, SendThread负责客户端和服务器端的数据通信,也包括事件信息的传输,EventThread主要在客户端回调注册的Watchers进行通知处理
ClientCnxn构造方法
&
【Java命令一】jmap
bit1129
Java命令
jmap命令的用法:
[hadoop@hadoop sbin]$ jmap
Usage:
jmap [option] <pid>
(to connect to running process)
jmap [option] <executable <core>
(to connect to a
Apache 服务器安全防护及实战
ronin47
此文转自IBM.
Apache 服务简介
Web 服务器也称为 WWW 服务器或 HTTP 服务器 (HTTP Server),它是 Internet 上最常见也是使用最频繁的服务器之一,Web 服务器能够为用户提供网页浏览、论坛访问等等服务。
由于用户在通过 Web 浏览器访问信息资源的过程中,无须再关心一些技术性的细节,而且界面非常友好,因而 Web 在 Internet 上一推出就得到
unity 3d实例化位置出现布置?
brotherlamp
unity教程unityunity资料unity视频unity自学
问:unity 3d实例化位置出现布置?
答:实例化的同时就可以指定被实例化的物体的位置,即 position
Instantiate (original : Object, position : Vector3, rotation : Quaternion) : Object
这样你不需要再用Transform.Position了,
如果你省略了第二个参数(
《重构,改善现有代码的设计》第八章 Duplicate Observed Data
bylijinnan
java重构
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusE
struts2更改struts.xml配置目录
chiangfai
struts.xml
struts2默认是读取classes目录下的配置文件,要更改配置文件目录,比如放在WEB-INF下,路径应该写成../struts.xml(非/WEB-INF/struts.xml)
web.xml文件修改如下:
<filter>
<filter-name>struts2</filter-name>
<filter-class&g
redis做缓存时的一点优化
chenchao051
redishadooppipeline
最近集群上有个job,其中需要短时间内频繁访问缓存,大概7亿多次。我这边的缓存是使用redis来做的,问题就来了。
首先,redis中存的是普通kv,没有考虑使用hash等解结构,那么以为着这个job需要访问7亿多次redis,导致效率低,且出现很多redi
mysql导出数据不输出标题行
daizj
mysql数据导出去掉第一行去掉标题
当想使用数据库中的某些数据,想将其导入到文件中,而想去掉第一行的标题是可以加上-N参数
如通过下面命令导出数据:
mysql -uuserName -ppasswd -hhost -Pport -Ddatabase -e " select * from tableName" > exportResult.txt
结果为:
studentid
phpexcel导出excel表简单入门示例
dcj3sjt126com
PHPExcelphpexcel
先下载PHPEXCEL类文件,放在class目录下面,然后新建一个index.php文件,内容如下
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
if (PHP_SAPI == 'cli')
die('
爱情格言
dcj3sjt126com
格言
1) I love you not because of who you are, but because of who I am when I am with you. 我爱你,不是因为你是一个怎样的人,而是因为我喜欢与你在一起时的感觉。 2) No man or woman is worth your tears, and the one who is, won‘t
转 Activity 详解——Activity文档翻译
e200702084
androidUIsqlite配置管理网络应用
activity 展现在用户面前的经常是全屏窗口,你也可以将 activity 作为浮动窗口来使用(使用设置了 windowIsFloating 的主题),或者嵌入到其他的 activity (使用 ActivityGroup )中。 当用户离开 activity 时你可以在 onPause() 进行相应的操作 。更重要的是,用户做的任何改变都应该在该点上提交 ( 经常提交到 ContentPro
win7安装MongoDB服务
geeksun
mongodb
1. 下载MongoDB的windows版本:mongodb-win32-x86_64-2008plus-ssl-3.0.4.zip,Linux版本也在这里下载,下载地址: http://www.mongodb.org/downloads
2. 解压MongoDB在D:\server\mongodb, 在D:\server\mongodb下创建d
Javascript魔法方法:__defineGetter__,__defineSetter__
hongtoushizi
js
转载自: http://www.blackglory.me/javascript-magic-method-definegetter-definesetter/
在javascript的类中,可以用defineGetter和defineSetter_控制成员变量的Get和Set行为
例如,在一个图书类中,我们自动为Book加上书名符号:
function Book(name){
错误的日期格式可能导致走nginx proxy cache时不能进行304响应
jinnianshilongnian
cache
昨天在整合某些系统的nginx配置时,出现了当使用nginx cache时无法返回304响应的情况,出问题的响应头: Content-Type:text/html; charset=gb2312 Date:Mon, 05 Jan 2015 01:58:05 GMT Expires:Mon , 05 Jan 15 02:03:00 GMT Last-Modified:Mon, 05
数据源架构模式之行数据入口
home198979
PHP架构行数据入口
注:看不懂的请勿踩,此文章非针对java,java爱好者可直接略过。
一、概念
行数据入口(Row Data Gateway):充当数据源中单条记录入口的对象,每行一个实例。
二、简单实现行数据入口
为了方便理解,还是先简单实现:
<?php
/**
* 行数据入口类
*/
class OrderGateway {
/*定义元数
Linux各个目录的作用及内容
pda158
linux脚本
1)根目录“/” 根目录位于目录结构的最顶层,用斜线(/)表示,类似于
Windows
操作系统的“C:\“,包含Fedora操作系统中所有的目录和文件。 2)/bin /bin 目录又称为二进制目录,包含了那些供系统管理员和普通用户使用的重要
linux命令的二进制映像。该目录存放的内容包括各种可执行文件,还有某些可执行文件的符号连接。常用的命令有:cp、d
ubuntu12.04上编译openjdk7
ol_beta
HotSpotjvmjdkOpenJDK
获取源码
从openjdk代码仓库获取(比较慢)
安装mercurial Mercurial是一个版本管理工具。 sudo apt-get install mercurial
将以下内容添加到$HOME/.hgrc文件中,如果没有则自己创建一个: [extensions] forest=/home/lichengwu/hgforest-crew/forest.py fe
将数据库字段转换成设计文档所需的字段
vipbooks
设计模式工作正则表达式
哈哈,出差这么久终于回来了,回家的感觉真好!
PowerDesigner的物理数据库一出来,设计文档中要改的字段就多得不计其数,如果要把PowerDesigner中的字段一个个Copy到设计文档中,那将会是一件非常痛苦的事情。