-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
444 lines (356 loc) · 51 KB
/
index.html
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
<!DOCTYPE html><html lang="zh-CN" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"><title>Reta的博客 - 浮天水送无穷树</title><meta name="keywords" content="Reta, reta, 罗聪"><meta name="author" content="Reta"><meta name="copyright" content="Reta"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta name="description" content="倚窗,听雨">
<meta property="og:type" content="website">
<meta property="og:title" content="Reta的博客">
<meta property="og:url" content="https://retamev.github.io/index.html">
<meta property="og:site_name" content="Reta的博客">
<meta property="og:description" content="倚窗,听雨">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://retamev.github.io/img/avatar.jpg">
<meta property="article:author" content="Reta">
<meta property="article:tag" content="Reta, reta, 罗聪">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://retamev.github.io/img/avatar.jpg"><link rel="shortcut icon" href="/img/favicon.png"><link rel="canonical" href="https://retamev.github.io/"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//www.google-analytics.com" crossorigin=""/><link rel="preconnect" href="//hm.baidu.com"/><link rel="preconnect" href="//fonts.googleapis.com" crossorigin=""/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.css" media="print" onload="this.media='all'"><script>var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?197ba248977e757573ce2d75d53c29ab";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script><script async="async" src="https://www.googletagmanager.com/gtag/js?id=G-6Y2T80Y26J"></script><script>window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-6Y2T80Y26J');
</script><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Roboto+Slab&display=swap" media="print" onload="this.media='all'"><script>const GLOBAL_CONFIG = {
root: '/',
algolia: undefined,
localSearch: {"path":"search.xml","languages":{"hits_empty":"找不到您查询的内容:${query}"}},
translate: undefined,
noticeOutdate: undefined,
highlight: {"plugin":"highlighjs","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false},
copy: {
success: '复制成功',
error: '复制错误',
noSupport: '浏览器不支持'
},
relativeDate: {
homepage: false,
post: false
},
runtime: '天',
date_suffix: {
just: '刚刚',
min: '分钟前',
hour: '小时前',
day: '天前',
month: '个月前'
},
copyright: undefined,
lightbox: 'fancybox',
Snackbar: {"chs_to_cht":"你已切换为繁体","cht_to_chs":"你已切换为简体","day_to_night":"你已切换为深色模式","night_to_day":"你已切换为浅色模式","bgLight":"#49b1f5","bgDark":"#121212","position":"bottom-left"},
source: {
justifiedGallery: {
js: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery@2/dist/fjGallery.min.js',
css: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery@2/dist/fjGallery.min.css'
}
},
isPhotoFigcaption: false,
islazyload: false,
isAnchor: true
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
title: 'Reta的博客',
isPost: false,
isHome: true,
isHighlightShrink: false,
isToc: false,
postUpdate: '2022-09-16 12:26:04'
}</script><noscript><style type="text/css">
#nav {
opacity: 1
}
.justified-gallery img {
opacity: 1
}
#recent-posts time,
#post-meta time {
display: inline !important
}
</style></noscript><script>(win=>{
win.saveToLocal = {
set: function setWithExpiry(key, value, ttl) {
if (ttl === 0) return
const now = new Date()
const expiryDay = ttl * 86400000
const item = {
value: value,
expiry: now.getTime() + expiryDay,
}
localStorage.setItem(key, JSON.stringify(item))
},
get: function getWithExpiry(key) {
const itemStr = localStorage.getItem(key)
if (!itemStr) {
return undefined
}
const item = JSON.parse(itemStr)
const now = new Date()
if (now.getTime() > item.expiry) {
localStorage.removeItem(key)
return undefined
}
return item.value
}
}
win.getScript = url => new Promise((resolve, reject) => {
const script = document.createElement('script')
script.src = url
script.async = true
script.onerror = reject
script.onload = script.onreadystatechange = function() {
const loadState = this.readyState
if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
script.onload = script.onreadystatechange = null
resolve()
}
document.head.appendChild(script)
})
win.activateDarkMode = function () {
document.documentElement.setAttribute('data-theme', 'dark')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
}
}
win.activateLightMode = function () {
document.documentElement.setAttribute('data-theme', 'light')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
}
}
const t = saveToLocal.get('theme')
if (t === 'dark') activateDarkMode()
else if (t === 'light') activateLightMode()
const asideStatus = saveToLocal.get('aside-status')
if (asideStatus !== undefined) {
if (asideStatus === 'hide') {
document.documentElement.classList.add('hide-aside')
} else {
document.documentElement.classList.remove('hide-aside')
}
}
const detectApple = () => {
if(/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)){
document.documentElement.classList.add('apple')
}
}
detectApple()
})(window)</script><meta name="generator" content="Hexo 5.4.0"></head><body><div id="loading-box"><div class="loading-left-bg"></div><div class="loading-right-bg"></div><div class="spinner-box"><div class="configure-border-1"><div class="configure-core"></div></div><div class="configure-border-2"><div class="configure-core"></div></div><div class="loading-word">加载中...</div></div></div><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="avatar-img is-center"><img src="/./img/avatar.jpg" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="site-data is-center"><div class="data-item"><a href="/archives/"><div class="headline">文章</div><div class="length-num">11</div></a></div><div class="data-item"><a href="/tags/"><div class="headline">标签</div><div class="length-num">15</div></a></div><div class="data-item"><a href="/categories/"><div class="headline">分类</div><div class="length-num">12</div></a></div></div><hr/><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> Home</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> Docs</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> Tags</span></a></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fas fa-link"></i><span> Friends</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> About</span></a></div></div></div></div><div class="page" id="body-wrap"><header class="full_page" id="page-header" style="background-image: url('https://s4.ax1x.com/2022/01/10/7VCgLq.jpg')"><nav id="nav"><span id="blog_name"><a id="site-name" href="/">Reta的博客</a></span><div id="menus"><div id="search-button"><a class="site-page social-icon search"><i class="fas fa-search fa-fw"></i><span> 搜索</span></a></div><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> Home</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> Docs</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> Tags</span></a></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fas fa-link"></i><span> Friends</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> About</span></a></div></div><div id="toggle-menu"><a class="site-page"><i class="fas fa-bars fa-fw"></i></a></div></div></nav><div id="site-info"><h1 id="site-title">Reta的博客</h1><div id="site-subtitle"><span id="subtitle"></span></div><div id="site_social_icons"><a class="social-icon" href="https://github.com/Retamev" target="_blank" title="Github"><i class="fab fa-github"></i></a><a class="social-icon" href="mailto:reta@cumt.edu.cn" target="_blank" title="Email"><i class="fas fa-envelope"></i></a><a class="social-icon" href="https://t.me/RetaPastos" target="_blank" title="Telegram"><i class="fab fa-telegram"></i></a><a class="social-icon" href="https://twitter.com/RetaMev" target="_blank" title="Twitter"><i class="fab fa-twitter"></i></a><a class="social-icon" href="https://www.zhihu.com/people/Arimi_" target="_blank" title="Zhihu"><i class="fab fa-zhihu"></i></a></div></div><div id="scroll-down"><i class="fas fa-angle-down scroll-down-effects"></i></div></header><main class="layout" id="content-inner"><div class="recent-posts" id="recent-posts"><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2022/09/15/dive-into-dl-pytorch-B/" title="《动手学深度学习》 Pytorch ver. Part B">《动手学深度学习》 Pytorch ver. Part B</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-09-14T16:00:00.000Z" title="发表于 2022-09-15 00:00:00">2022-09-15</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E7%90%86%E8%AE%BA/">理论</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/%E7%90%86%E8%AE%BA/%E7%90%86%E8%AE%BA-%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/">理论/机器学习</a></span><span class="article-meta tags"><span class="article-meta-separator">|</span><i class="fas fa-tag"></i><a class="article-meta__tags" href="/tags/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/">机器学习</a><span class="article-meta-link">•</span><a class="article-meta__tags" href="/tags/Pytorch/">Pytorch</a></span></div><div class="content">
《动手学深度学习》原书地址:https://github.com/d2l-ai/d2l-zh
《动手学深度学习》(Pytorch ver.):https://tangshusen.me/Dive-into-DL-PyTorch/#/
知识架构:
本文的主要作用是在阅读过程中做一些摘录。对于「机器学习」领域,reta 虽然曾尝试从各个领域入门,也尝试训过一些模型,但是还是缺少系统性、结构性的学习。希望阅读本书能带来更多的收获吧。
与前面的一些笔记相比,本文更加侧重于「实践」。也就是说切实地提升自己的代码能力。
Part B 包含:
§ 5 CNN
基本概念:卷积层、填充与步长、多通道、池化、批量归一化
模型的例子:LeNet、AlexNet、VGG、NiN、GoogLeNet、ResNet、DenseNet
§ 6 RNN
语言模型及其计算,N-gram 的概念
RNN 基本模型及其实现,字符数据集的制作
GRU, LSTM 的原理
Deep-RNN, bi-RNN
CNN基本概念卷积层
二维互相关运算
如图所示,输入是一个高和宽均为3的二维数组。我们将该数组的形状记为 $3×3$ 或$(3,3)$。
核数组的高和宽分别为 2。该数组在卷积计算中又称卷积核或过滤器(filter)。
卷积核窗口(又称卷积窗口)的形状取决于卷积核的高和宽,即 $2×2$。
图中的阴影部分为第一个输出元素及其计算所使用的输入和核数组元素:
$0×0+1×1+3×2+4×3=19$。
在二维互相关运算中,卷积窗口从输入数组的最左上方开始,按从左往右、从上往下的顺序,按照特定的步长, ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2022/07/10/dive-into-dl-pytorch-A/" title="《动手学深度学习》 Pytorch ver. Part A">《动手学深度学习》 Pytorch ver. Part A</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-07-09T16:00:00.000Z" title="发表于 2022-07-10 00:00:00">2022-07-10</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E7%90%86%E8%AE%BA/">理论</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/%E7%90%86%E8%AE%BA/%E7%90%86%E8%AE%BA-%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/">理论/机器学习</a></span><span class="article-meta tags"><span class="article-meta-separator">|</span><i class="fas fa-tag"></i><a class="article-meta__tags" href="/tags/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/">机器学习</a><span class="article-meta-link">•</span><a class="article-meta__tags" href="/tags/Pytorch/">Pytorch</a></span></div><div class="content">
《动手学深度学习》原书地址:https://github.com/d2l-ai/d2l-zh
《动手学深度学习》(Pytorch ver.):https://tangshusen.me/Dive-into-DL-PyTorch/#/
知识架构:
本文的主要作用是在阅读过程中做一些摘录。对于「机器学习」领域,reta 虽然曾尝试从各个领域入门,也尝试训过一些模型,但是还是缺少系统性、结构性的学习。希望阅读本书能带来更多的收获吧。
与前面的一些笔记相比,本文更加侧重于「实践」。也就是说切实地提升自己的代码能力。
Part A 包含:
§ 1 深度学习简介
§ 2 预备知识:Pytorch
§ 3 深度学习基础
线性回归,Softmax 回归,多层感知机三类基本模型
权重衰减和 Dropout 两类应对过拟合的方法
§ 4 深度学习计算
构造 Pytorch 模型的方式
模型参数的访问、初始化与共享
自定义 Layer
读取与存储
GPU 计算
深度学习简介
机器学习与深度学习的关系
机器学习研究如何使计算机系统利用经验改善性能。它是人工智能领域的分支,也是实现人工智能的一种手段。
在机器学习的众多研究方向中,表征学习关注如何自动找出表示数据的合适方式,以便更好地将输入变换为正确的输出。
而本书要重点探讨的深度学习是具有多级表示的表征学习方法。
在每一级(从原始数据开始),深度学习通过简单的函数将该级的表示变换为更高级的表示。因此,深度学习模型也可以看作是由许多简单函数复合而成的函数。当这些复合的函数足够多时,深度学习模型就可以表达非常复杂的变换。
深度学习的 ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2022/04/17/qrcode/" title="「QRCode 标准阅读」#1 构成及数据编码">「QRCode 标准阅读」#1 构成及数据编码</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-04-16T16:00:00.000Z" title="发表于 2022-04-17 00:00:00">2022-04-17</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E6%8A%80%E6%9C%AF/">技术</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/%E6%8A%80%E6%9C%AF/%E6%8A%80%E6%9C%AF-CTF/">技术/CTF</a></span><span class="article-meta tags"><span class="article-meta-separator">|</span><i class="fas fa-tag"></i><a class="article-meta__tags" href="/tags/QRCode/">QRCode</a><span class="article-meta-link">•</span><a class="article-meta__tags" href="/tags/CTF/">CTF</a></span></div><div class="content">基础描述及结构(6.1、6.3)基础描述(5.3、6.1)
块位置:左上角为原点 (0, 0) 向下x+,向右y+
版本表示:Version V-E(其中V是版本号,E是纠错等级)
数据表示:黑块-1 白块-0(可以带背景全部反色)
大小:从版本1到版本40依次是 21x21 ~ 177x177(每增加一个版本,边长增加4)
支持的最多字符数(版本40)
数字模式:7089
字母模式:4296
字节模式:2953
日文模式:1817
纠错等级允许的恢复比例
L:7%
M:15%
Q:25%
H:30%
二维码结构(6.3)
功能图案(function patterns)
特征符(finder pattern)7x7黑圈 5x5白圈 3x3黑块
分割线(separator)在特征符周围的一圈全白区域
时序图案(timing patterns)第7行第7列的两条黑白条纹
对齐图案(alignment patterns)版本1无,版本2-6 1个,版本7-13 6个……(附录E)
静默区(quiet zone)至少4个单位宽
编码区域(encoding region)
格式信息(format information)左上角分割线外一圈,左下角分割线右侧,右上角分割线下侧
版本信息(version information)版本7后才有,在左下分割线上侧,右上分割线左侧
数据及纠错码区域
数据编码(7.4)数据序列(7.4.1)默认的 ECI 模式下,比特流以模式标识符开始。如果不是默认 ECI 模式,则需要从 ECI 头开始:
(4 bits)ECI 模式标识符 ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2022/03/26/python-func-decorators/" title="Python 函数装饰器">Python 函数装饰器</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-03-25T16:00:00.000Z" title="发表于 2022-03-26 00:00:00">2022-03-26</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E6%8A%80%E6%9C%AF/">技术</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/%E6%8A%80%E6%9C%AF/%E6%8A%80%E6%9C%AF-Python/">技术/Python</a></span><span class="article-meta tags"><span class="article-meta-separator">|</span><i class="fas fa-tag"></i><a class="article-meta__tags" href="/tags/%E5%87%BD%E6%95%B0%E4%BF%AE%E9%A5%B0%E5%99%A8/">函数修饰器</a></span></div><div class="content">Python 函数的装饰器是修改其他函数功能的函数。
Introduction首先,我们需要将 Python 中的函数作为函数对象来理解。
函数名只是引用标识名
123456789101112131415161718192021def hi(name="yasoob"): return "hi " + name print(hi())# output: 'hi yasoob' # 我们甚至可以将一个函数赋值给一个变量,比如greet = hi# 我们这里没有在使用小括号,因为我们并不是在调用hi函数# 而是在将它放在greet变量里头。我们尝试运行下这个 print(greet())# output: 'hi yasoob' # 如果我们删掉旧的hi函数,看看会发生什么!del hiprint(hi())#outputs: NameError print(greet())#outputs: 'hi yasoob'
函数的返回值可以是函数对象
123456789101112131415161718192021def hi(name="yasoob"): def greet(): return "now you are in the greet() function" def welcome(): return "now you are in the welcome() function&qu ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2022/03/13/oop-note/" title="OOP 课程笔记">OOP 课程笔记</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-03-12T16:00:00.000Z" title="发表于 2022-03-13 00:00:00">2022-03-13</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E7%90%86%E8%AE%BA/">理论</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/%E7%90%86%E8%AE%BA/%E7%90%86%E8%AE%BA-%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/">理论/面向对象</a></span><span class="article-meta tags"><span class="article-meta-separator">|</span><i class="fas fa-tag"></i><a class="article-meta__tags" href="/tags/OOP/">OOP</a></span></div><div class="content">《面向对象程序设计基础》课程笔记的主要部分。内含:
创建与销毁
引用与复制
组合与继承
虚函数
多态与模板
STL 初步
Week 05 创建和销毁5.0 Overview
5.1 友元
5.2 静态成员与常量成员
5.3 常量/静态/参数对象的构造与析构时机
5.4 对象的new和delete
5.1 友元
友元
被声明为友元的函数或类,具有对出现友元声明的类的private及protected成员的访问权限,即可以访问该类的一切成员。
友元的声明只能在类内进行。
可以声明别的类的成员函数,包括构造和析构函数,为当前类的友元。
友元的声明与当前所在域是否为private或public无关。
5.2 静态成员与常量成员5.2.1 static
静态变量与静态函数
静态变量:使用static修饰的变量
初始化:初次定义时需要初始化,且只能初始化一次。
静态局部变量存储在静态存储区,生命周期将持续到整个程序结束
静态全局变量是内部可链接的,作用域仅限其声明的文件,不能被其他文件所用,可以避免和其他文件中的同名变量冲突
静态函数:使用static修饰的函数
静态函数是内部可链接的,作用域仅限其声明的文件,不能被其他文件所用,可以避免和其他文件中的同名函数冲突
静态数据成员与静态成员函数
静态数据成员:使用static修饰的数据成员,是隶属于类的,称为类的静态数据成员,也称“类变量”
静态数据成员被该类的所有对象共享(即所有对象中的这个数据域处在同一内存位置)
类的静态成员(数据、函数)既可以通过对象来访问,也可以通过类名来访问,如ClassName:: ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2022/03/01/LaTeX%20Introduction/" title="LaTeX 从入坑到退坑">LaTeX 从入坑到退坑</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-02-28T16:00:00.000Z" title="发表于 2022-03-01 00:00:00">2022-03-01</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E6%8A%80%E6%9C%AF/">技术</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/%E6%8A%80%E6%9C%AF/%E6%8A%80%E6%9C%AF-%E7%BB%BC%E5%90%88/">技术/综合</a></span><span class="article-meta tags"><span class="article-meta-separator">|</span><i class="fas fa-tag"></i><a class="article-meta__tags" href="/tags/LaTeX/">LaTeX</a></span></div><div class="content">虽然 Markdown 很好用,但是生成的 pdf 文档看起来就是没有范不够正式。此外,使用 LaTeX 也是我们之后写论文的必备技能。
本教程主要涉及已对 Markdown 较为熟识之后的迁移学习。
前置知识
Markdown 入门
Markdown 编写数学公式的方法
LaTeX 简介我们首先解决以下几个问题:
LaTeX 是什么?
LaTeX 怎样运作?
我该在哪里写 LaTex?
在解决上述几个问题之后,我们再详细介绍该怎么写 LaTeX 的问题。
LaTeX 是什么?相信你读到这里已经做好觉悟要被灌输一系列关键词和其对应概念了。让我们开始:
历史回溯到 Knuth 教授的巨著 The Art of Computer Programming 将要出版之际,当出版商将他们排版的书稿草样交给 Knuth 教授的时候,他对于其中复杂数学公式的排版处理十分不满。其排版之粗糙,已达到了会影响人们理解原书内容的程度。因此,对于复杂的数学和物理公式,我们急需一种能够将其在互联网上传输的编码格式,使得人能阅读的公式和机器能存储的公式之间达到一种互相转化。
TeX:一种排版引擎,也是该引擎使用的标记语言的名称。引擎是指能够断行、分页的程序,标记语言是控制命令和文本结合的格式。可以类比理解成你写的 C++ 源代码或者更底层的机器指令码,如输入 2^6。
LaTeX:是一个基于 TeX 的排版系统,将用户按照它的格式编写的文档解释成 TeX 引擎能理解的形式并交付给 TeX 引擎处理,再将最终结果返回给用户。可以类比理解成 g++ 编译器,将上述代码渲染为 2626。
pdfTe ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2022/03/01/%E3%80%8A%E5%8E%8C%E5%A5%B3%E3%80%8B%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/" title="《厌女》读书笔记">《厌女》读书笔记</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-02-28T16:00:00.000Z" title="发表于 2022-03-01 00:00:00">2022-03-01</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E6%97%A5%E5%BF%97/">日志</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/%E6%97%A5%E5%BF%97/%E6%97%A5%E5%BF%97-%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/">日志/读书笔记</a></span><span class="article-meta tags"><span class="article-meta-separator">|</span><i class="fas fa-tag"></i><a class="article-meta__tags" href="/tags/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/">读书笔记</a><span class="article-meta-link">•</span><a class="article-meta__tags" href="/tags/%E7%A4%BE%E4%BC%9A%E7%A7%91%E5%AD%A6/">社会科学</a><span class="article-meta-link">•</span><a class="article-meta__tags" href="/tags/%E5%A5%B3%E6%80%A7%E4%B8%BB%E4%B9%89/">女性主义</a></span></div><div class="content">开始读《厌女:日本的女性嫌恶》(上野千鹤子著,王兰译),久闻此书大名,终于下定决心,也算是对自己学习能力的一个复健。读了几页,受益匪浅,遂决定做些记录。
Notes第一章作者提到“逃往女性,逃离女性”,对此的解释我深以为然。成年男性之所以急切地想要找寻一个女性结婚,是想要拥有一个所有物,或者说欲望发泄的对象。这里的欲望并不一定是性欲,而是包括了对女性的一切幻想,例如打理家务、相夫教子等。然而,“逃往”的终究只是对女性的幻想,在发现了现实中的女性不是这个样子之后,便开始“逃离女性”,也是“逃离家庭”。
仅以我父亲为例——在读了这一部分之后,我对他的行为有了一些了解。他单身时浪荡不羁,欠了一屁股债。随后,他与我母亲成婚,但两人相处并不愉快。显然,他期望的是一个贤惠、能干、还能赚钱的妻子,这样的形象只是他对女性的幻想。因此,他开始在外面寻觅刺激,不着家庭。他总是期望着能够找到一个满足他幻想的女性,可惜,这注定只是失败。
第二章作者提到“成为的欲望”和“拥有的欲望”。这个说法源自弗洛伊德对“生的欲动”的分解,即“自我确认/同化 (identification)”和“性欲发泄/欲望满足 (libido cathexis)”,用通俗易懂的话来讲,就是段首二词。
作者举例,一般顺性别异性恋者(以女性为例),会在家庭成长的过程中,逐渐与自己的母亲同化,即希望成为类似自己母亲的人,并且拥有男性——类似父亲,或者说母亲的丈夫的人。当然,这里说的“拥有”并不是真正主客体意味上的拥有,而只是一种简单的分类。
这里插入一点我多余的想法,部分后天跨性别的出现是否可能由于这种自我确认的失败。原定的同化目标( ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2022/02/24/%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86%E4%B8%8E%E5%AD%A6%E6%9C%AF%E7%A0%94%E7%A9%B6/" title="(2-9,4-9)图像处理与学术研究 课程笔记">(2-9,4-9)图像处理与学术研究 课程笔记</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-02-23T16:00:00.000Z" title="发表于 2022-02-24 00:00:00">2022-02-24</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E7%90%86%E8%AE%BA/">理论</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/%E7%90%86%E8%AE%BA/%E7%90%86%E8%AE%BA-%E6%96%87%E5%8C%96%E8%AF%BE/">理论/文化课</a></span><span class="article-meta tags"><span class="article-meta-separator">|</span><i class="fas fa-tag"></i><a class="article-meta__tags" href="/tags/%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86/">图像处理</a><span class="article-meta-link">•</span><a class="article-meta__tags" href="/tags/%E5%AD%A6%E6%9C%AF%E7%A0%94%E7%A9%B6/">学术研究</a></span></div><div class="content">图像处理与学术研究Chapter 1 图像处理基础1.1 概念
图像是视觉信息的重要表现方式,是对客观事物相似的、生动的描述,是光能量和人类大脑相结合的产物。
数字图像处理(Digital Image Processing)是利用计算机对图像进行去除噪声、增强、复原分割、提取特征等的理论、方法和技术,是信号处理的子类,相关理论涉及通信、计算机、电子、数学、物理等多个方面,已成为一门发展迅速的综合性学科。
1.2 图像函数
A = imread('filename');
从 filename 指定的文件读取图像,并从文件内容推断出其格式。如果 filename 为多图像文件,则 imread 读取该文件中的第一个图像。下图为图像的返回结果。
imshow('filename');
在图窗中显示灰度图像 I。imshow 使用图像数据类型的默认显示范围,并优化图窗、坐标区和图像对象属性以便显示图像。
imwrite(A,filename);
将图像数据 A 写入 filename 指定的文件,并从扩展名推断出文件格式。imwrite 在当前文件夹中创建新文件。输出图像的位深取决于 A 的数据类型和文件格式。对于大多数格式来说:
如果 A 属于数据类型 uint8,则 imwrite 输出 8 位值。
如果 A 属于数据类型 uint16 且输出文件格式支持 16 位数据(JPEG、PNG 和 TIFF),则 imwrite 将输出 16 位的值。如果输出文件格式不支持 16 位数据,则 imwrite 返回错误。
如果 A 是灰度图像 ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2022/02/21/name/" title="C++程序设计之变量命名指南">C++程序设计之变量命名指南</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-02-20T16:00:00.000Z" title="发表于 2022-02-21 00:00:00">2022-02-21</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E7%90%86%E8%AE%BA/">理论</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/%E7%90%86%E8%AE%BA/%E7%90%86%E8%AE%BA-%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/">理论/面向对象</a></span><span class="article-meta tags"><span class="article-meta-separator">|</span><i class="fas fa-tag"></i><a class="article-meta__tags" href="/tags/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/">面向对象</a><span class="article-meta-link">•</span><a class="article-meta__tags" href="/tags/C/">C++</a></span></div><div class="content">算法竞赛选手,在变量名使用上,有诸多门派:
字母派:a b c d e f g 依次使用
新字母派:array,brray,crray 表示三个数组
新新字母派:img,jmg,kmg 表示三张图片
拼音派:用 shanchu 表示删除,用 xiugai 表示修改
卖萌派:QAQ,qwq,TAT,orz
复读派:n,nn,nnn
重排派:next,extn,xtne
化合物派:h2o, ch4, co2
下划线派:_,__,___
脏话派:f**k,s**t,t*d
除了循环变量一般用 i,j,k 以外,其它变量名大家就放飞自我了
这样降低了代码可读性,一段时间以后谁也看不懂了,也不利于相互交流
这里按字母序列出一些推荐使用的变量名,仅供参考,抛砖引玉
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384add 加anc, ancestor 祖先ans, answer 答案bel, belong 属于best 最佳的build 建立block 障碍ch, char 字符check 判定color 颜色cmp, compare 比较cnt, count 计数器cur, current 当前量deg, degree 度数dep, depth 深度del, delete 删除delta 增量diff ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2022/01/31/continue%20blogging,2020!/" title="Continue blogging,2022!">Continue blogging,2022!</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-01-30T16:00:00.000Z" title="发表于 2022-01-31 00:00:00">2022-01-31</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E6%8A%80%E6%9C%AF/">技术</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/%E6%8A%80%E6%9C%AF/%E6%8A%80%E6%9C%AF-%E7%BD%91%E7%AB%99/">技术/网站</a></span></div><div class="content">写于2022/1/31,刚好除夕夜
因为闲了太多天于是觉得要做点什么,看到服务器打折,想起来博客还托管在 GitHub Pages 上,那就好好整整自己的博客吧。
Retamev.github.io 的开发日记
主题的选择
2021 年暑假在 Github 闲逛,对 butterfly 主题一见钟情,加上时用的动态博客维护较为麻烦,便萌生了把博客搬迁到 Hexo 的想法。
于是最后选择了 Hexo + Butterfly 的方案。
什么是 Hexo ?
Hexo 是一个快速的、简单的、功能强大的博客框架。你可以通过 Markdown 语言写文章,然后 Hexo 帮你生成一个带有漂亮主题的静态页面。
什么是 Butterfly ?
Butterfly 是一个 Hexo 框架下的简单卡片式 UI 设计主题。搭配Node.js和Git(分布式版本控制系统)将主题挂载到你的博客仓库。
Hexo 的安装和后续操作安装借助搜索引擎的帮助安装完 Node 以及 Git 后,新建一个标签为blog的文件夹,在留白处单击鼠标右键选择 Git Bash Here 对根目录执行 Git 操作。
输入下面的指令安装 Hexo。
1npm install -g hexo-cli
安装完成后可以通过以下指令验证安装,出现版本号即为成功。
1hexo -v
启动输入以下指令生成基础文件和目录
1hexo init
输入以下指令安装运行hexo的一些必要的组件
1npm install
运行完,当前目录下会自动创建一些目录,如下
1234567.├── _config.yml├── package.jso ...</div></div></div><nav id="pagination"><div class="pagination"><span class="page-number current">1</span><a class="page-number" href="/page/2/#content-inner">2</a><a class="extend next" rel="next" href="/page/2/#content-inner"><i class="fas fa-chevron-right fa-fw"></i></a></div></nav></div><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="is-center"><div class="avatar-img"><img src="/./img/avatar.jpg" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/></div><div class="author-info__name">Reta</div><div class="author-info__description">倚窗,听雨</div></div><div class="card-info-data is-center"><div class="card-info-data-item"><a href="/archives/"><div class="headline">文章</div><div class="length-num">11</div></a></div><div class="card-info-data-item"><a href="/tags/"><div class="headline">标签</div><div class="length-num">15</div></a></div><div class="card-info-data-item"><a href="/categories/"><div class="headline">分类</div><div class="length-num">12</div></a></div></div><div class="card-info-social-icons is-center"><a class="social-icon" href="https://github.com/Retamev" target="_blank" title="Github"><i class="fab fa-github"></i></a><a class="social-icon" href="mailto:reta@cumt.edu.cn" target="_blank" title="Email"><i class="fas fa-envelope"></i></a><a class="social-icon" href="https://t.me/RetaPastos" target="_blank" title="Telegram"><i class="fab fa-telegram"></i></a><a class="social-icon" href="https://twitter.com/RetaMev" target="_blank" title="Twitter"><i class="fab fa-twitter"></i></a><a class="social-icon" href="https://www.zhihu.com/people/Arimi_" target="_blank" title="Zhihu"><i class="fab fa-zhihu"></i></a></div></div><div class="sticky_layout"><div class="card-widget card-categories"><div class="item-headline">
<i class="fas fa-folder-open"></i>
<span>分类</span>
<a class="card-more-btn" href="/categories/" title="查看更多">
<i class="fas fa-angle-right"></i></a>
</div>
<ul class="card-category-list" id="aside-cat-list">
<li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E6%8A%80%E6%9C%AF/"><span class="card-category-list-name">技术</span><span class="card-category-list-count">4</span></a><ul class="card-category-list child"><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E6%8A%80%E6%9C%AF/%E6%8A%80%E6%9C%AF-CTF/"><span class="card-category-list-name">技术/CTF</span><span class="card-category-list-count">1</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E6%8A%80%E6%9C%AF/%E6%8A%80%E6%9C%AF-Python/"><span class="card-category-list-name">技术/Python</span><span class="card-category-list-count">1</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E6%8A%80%E6%9C%AF/%E6%8A%80%E6%9C%AF-%E7%BB%BC%E5%90%88/"><span class="card-category-list-name">技术/综合</span><span class="card-category-list-count">1</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E6%8A%80%E6%9C%AF/%E6%8A%80%E6%9C%AF-%E7%BD%91%E7%AB%99/"><span class="card-category-list-name">技术/网站</span><span class="card-category-list-count">1</span></a></li></ul></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E6%97%A5%E5%BF%97/"><span class="card-category-list-name">日志</span><span class="card-category-list-count">2</span></a><ul class="card-category-list child"><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E6%97%A5%E5%BF%97/%E6%97%A5%E5%BF%97-%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/"><span class="card-category-list-name">日志/更新记录</span><span class="card-category-list-count">1</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E6%97%A5%E5%BF%97/%E6%97%A5%E5%BF%97-%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/"><span class="card-category-list-name">日志/读书笔记</span><span class="card-category-list-count">1</span></a></li></ul></li>
</ul></div><div class="card-widget card-tags"><div class="item-headline"><i class="fas fa-tags"></i><span>标签</span></div><div class="card-tag-cloud"><a href="/tags/C/" style="font-size: 1.1em; color: #999">C++</a> <a href="/tags/CTF/" style="font-size: 1.1em; color: #999">CTF</a> <a href="/tags/LaTeX/" style="font-size: 1.1em; color: #999">LaTeX</a> <a href="/tags/OOP/" style="font-size: 1.1em; color: #999">OOP</a> <a href="/tags/Pytorch/" style="font-size: 1.5em; color: #99a9bf">Pytorch</a> <a href="/tags/QRCode/" style="font-size: 1.1em; color: #999">QRCode</a> <a href="/tags/%E5%87%BD%E6%95%B0%E4%BF%AE%E9%A5%B0%E5%99%A8/" style="font-size: 1.1em; color: #999">函数修饰器</a> <a href="/tags/%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86/" style="font-size: 1.1em; color: #999">图像处理</a> <a href="/tags/%E5%A5%B3%E6%80%A7%E4%B8%BB%E4%B9%89/" style="font-size: 1.1em; color: #999">女性主义</a> <a href="/tags/%E5%AD%A6%E6%9C%AF%E7%A0%94%E7%A9%B6/" style="font-size: 1.1em; color: #999">学术研究</a> <a href="/tags/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/" style="font-size: 1.5em; color: #99a9bf">机器学习</a> <a href="/tags/%E7%A4%BE%E4%BC%9A%E7%A7%91%E5%AD%A6/" style="font-size: 1.1em; color: #999">社会科学</a> <a href="/tags/%E7%AB%99%E7%82%B9%E6%97%A5%E5%BF%97/" style="font-size: 1.1em; color: #999">站点日志</a> <a href="/tags/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/" style="font-size: 1.1em; color: #999">读书笔记</a> <a href="/tags/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/" style="font-size: 1.1em; color: #999">面向对象</a></div></div><div class="card-widget card-archives"><div class="item-headline"><i class="fas fa-archive"></i><span>归档</span></div><ul class="card-archive-list"><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2022/09/"><span class="card-archive-list-date">九月 2022</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2022/07/"><span class="card-archive-list-date">七月 2022</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2022/04/"><span class="card-archive-list-date">四月 2022</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2022/03/"><span class="card-archive-list-date">三月 2022</span><span class="card-archive-list-count">4</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2022/02/"><span class="card-archive-list-date">二月 2022</span><span class="card-archive-list-count">2</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2022/01/"><span class="card-archive-list-date">一月 2022</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2021/10/"><span class="card-archive-list-date">十月 2021</span><span class="card-archive-list-count">1</span></a></li></ul></div><div class="card-widget card-webinfo"><div class="item-headline"><i class="fas fa-chart-line"></i><span>网站资讯</span></div><div class="webinfo"><div class="webinfo-item"><div class="item-name">文章数目 :</div><div class="item-count">11</div></div><div class="webinfo-item"><div class="item-name">已运行时间 :</div><div class="item-count" id="runtimeshow" data-publishDate="2021-10-20T16:00:00.000Z"></div></div><div class="webinfo-item"><div class="item-name">本站总字数 :</div><div class="item-count">67.1k</div></div><div class="webinfo-item"><div class="item-name">本站访客数 :</div><div class="item-count" id="busuanzi_value_site_uv"></div></div><div class="webinfo-item"><div class="item-name">本站总访问量 :</div><div class="item-count" id="busuanzi_value_site_pv"></div></div><div class="webinfo-item"><div class="item-name">最后更新时间 :</div><div class="item-count" id="last-push-date" data-lastPushDate="2022-09-16T04:26:04.057Z"></div></div></div></div></div></div></main><footer id="footer"><div id="footer-wrap"><div class="copyright">©2020 - 2022 By Reta</div><div class="framework-info"><span>框架 </span><a target="_blank" rel="noopener" href="https://hexo.io">Hexo</a><span class="footer-separator">|</span><span>主题 </span><a target="_blank" rel="noopener" href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly</a></div><div class="footer_custom_text"><p><a rel="license noopener" target="_blank" href="https://creativecommons.org/licenses/by-sa/4.0/"><img alt="知识共享许可协议" style="border-width:0" src="https://ksmeow.moe/wp-content/uploads/2020/05/cc-by-nc-88x31-1.png"></a><br>本博客内所有原创内容采用<a rel="license noopener" target="_blank" href="https://creativecommons.org/licenses/by-sa/4.0/">知识共享署名-相同方式共享 4.0 国际许可协议</a>进行许可。引用内容如果侵权,请在此留言。<br>All original content in this blog is licensed under a <a rel="license noopener" target="_blank" href="https://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>. <br>If any reference content infringes your rights, please contact us.</p><a href="https://icp.gov.moe/?keyword=20220770" target="_blank">萌ICP备20220770号</a></div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="darkmode" type="button" title="浅色和深色模式转换"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="单栏和双栏切换"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside_config" type="button" title="设置"><i class="fas fa-cog fa-spin"></i></button><button id="go-up" type="button" title="回到顶部"><i class="fas fa-arrow-up"></i></button></div></div><div id="local-search"><div class="search-dialog"><nav class="search-nav"><span class="search-dialog-title">本地搜索</span><span id="loading-status"></span><button class="search-close-button"><i class="fas fa-times"></i></button></nav><div class="is-center" id="loading-database"><i class="fas fa-spinner fa-pulse"></i><span> 数据库加载中</span></div><div class="search-wrap"><div id="local-search-input"><div class="local-search-box"><input class="local-search-box--input" placeholder="搜索文章" type="text"/></div></div><hr/><div id="local-search-results"></div></div></div><div id="search-mask"></div></div><div><script src="/js/utils.js"></script><script src="/js/main.js"></script><script src="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.umd.js"></script><script src="https://cdn.jsdelivr.net/npm/instant.page/instantpage.min.js" type="module"></script><script src="https://cdn.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.js"></script><script src="/js/search/local-search.js"></script><script>var preloader = {
endLoading: () => {
document.body.style.overflow = 'auto';
document.getElementById('loading-box').classList.add("loaded")
},
initLoading: () => {
document.body.style.overflow = '';
document.getElementById('loading-box').classList.remove("loaded")
}
}
window.addEventListener('load',preloader.endLoading())</script><div class="js-pjax"><script>function subtitleType () {
if (true) {
window.typed = new Typed("#subtitle", {
strings: ["Τhіnk οncе, сοdе ΝаΝcе;","Life is a race of O(n). Do not expect it to have a O(1) solution.","我不信梦幻泡影,理想主义踩在坚实的大地","一切有为法,如梦幻泡影,如露亦如电,应作如是观","Loss can be minimized, but memories can not.","所有tips都是认真的,不包括这一条...","研究表明,汉字序顺不影响阅读","听说有人专门为了看 tips 点开了 Devtools","嘟嘟噜~","飞越牢不可破的黑暗,潜入星群的领地","少女祈祷中","「山有木兮木有枝,心悦君兮君不知」","「方知蓦然回首,那人却已不在灯火阑珊处」","「历尽苦难痴心不改,少年壮志不言愁」","「世事短如春梦,人情薄似秋云」","咕咕咕?咕咕,咕咕咕!咕咕咕咕咕咕...","「今夜は月が綺麗ですね」","♩ 如果还能找到你...就让风儿告诉你... ♩","「纵然踏上不归之路,也绝对不要回头呢」","所有 tips 都是乱写的,包括这一条","「存在的,奇迹、魔法,都是存在的!」","为什么这个博客会和游戏一样有 tips 功能呢...","每个 tip 的出现概率...真的是随机的!","「友情是珍珠,回忆是钻石」","「良时不再,斯乐难常」","没有 bug 吧...应该没有吧...希望没有吧...","这真的是一个技术向博客吗,真的吗?不会吧不会吧?","♩ 夢ならば覚めないで ♩","「三年风雨初心未泯,歧路争锋浪子无悔」","「所有的生活都是合理的,我们没必要相互理解」","「我们这一生很短,我们终将会失去它,所以不妨大胆一点...有很多事都没有答案」"],
startDelay: 300,
typeSpeed: 150,
loop: true,
backSpeed: 50
})
} else {
document.getElementById("subtitle").innerHTML = 'Τhіnk οncе, сοdе ΝаΝcе;'
}
}
if (true) {
if (typeof Typed === 'function') {
subtitleType()
} else {
getScript('https://cdn.jsdelivr.net/npm/typed.js/lib/typed.min.js').then(subtitleType)
}
} else {
subtitleType()
}</script></div><script src="//at.alicdn.com/t/font_3167563_l1i8xnefd8l.css"></script><script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script><span id="busuanzi_container_site_pv">本站总访问量<span id="busuanzi_value_site_pv"></span>次</span><canvas class="fireworks" mobile="false"></canvas><script src="https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/fireworks.min.js"></script><script id="canvas_nest" defer="defer" color="0,0,255" opacity="0.7" zIndex="-1" count="99" mobile="true" src="https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/canvas-nest.min.js"></script><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script></div></body></html>