- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 563425 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174250
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
( E3 T+ o& ]+ _9 D! H【数学建模】数据处理问题
5 W9 x6 p$ R; `8 O& n一、插值与拟合
f. s1 Z1 l1 M: \9 u7 G, A6 G* f! s) `! F: E
常用于数据的补全以及趋势分析
3 R0 |6 @1 R% i; P5 B# `* A' k1 ? k" w
1、插值6 G, ]0 m, F j" g7 F
: U6 k) V$ A3 C3 z总的思想,就是利用函数f (x)若干已知点的函数值,求出适当的特定函数g(x)。这样f(x)其他未知点上的值,就可以用g(x)在这一点的值来近似。这种通过已知求未知的方法称为-----插值。
: q$ N# \: \2 M; l9 c
" P- k9 l" z6 `7 F! N4 z7 x9 L插值方法有很多,个人感觉样条插值spline最常用吧。。。其他感觉要么复杂要么不靠谱。8 w) A) U1 g. \ E" K
! v% p$ l. h; y& K. Y/ E对了,二维散乱插值有个方法叫v4,效果不错,拿来用就是了。。。
. ~) V! Y+ ~- Z7 T" p% n: K" Z Y5 i1 z6 q. X, U
基本内容:* e2 ]2 v6 U& f: d t
" P: S. s+ B8 T0 Y1 {一维插值1 N3 V( ~) `4 Y4 _
二维有序插值
8 R% l. w% N/ {* t7 U( E+ b; |二维散乱插值5 D$ b9 b- @2 p( t# V. c
基本语法:y = interp1(x0,y0,x,'spline'); %一维插值
1 @# q7 s N. ~2 m%x0必须单调;x要落在x0区间范围内;x指的是待求的值
) d; _" s% ~2 ^: [& `$ C$ V) J0 e
. H$ H* |; N& t* E! ~$ U4 W; |%示例6 T0 @+ r" z0 T* f0 O% y
hours=1:12;( e0 \/ o" \ O: ~
temps=[5 8 9 15 25 29 31 30 22 25 27 24];
6 l1 k8 i5 }& y+ I+ E1 I2 i! Hh=1:0.1:12;
4 D% I) C0 l- k" ht=interp1(hours,temps,h,'spline'); 0 D F) `! F8 w. ^
" k( P/ m* } m- L4 r( X, H( S1 z# f8 P
y = interp2(x0,y0,z0,x,y,'spline'); %二维插值--规则点2 a2 g( H6 Z' H) }# t) B
%x0,y0必须单调;x,y是一个是行向量一个是列向量;x,y要落在x0,y0区间范围内;(x,y)指的是待求的坐标
( A. Z- o& d0 {; o2 e1 v4 _; ?" Z+ ~
%示例) P$ v4 S4 s' ^- R
x=1:5;
) g) n' L0 C! T( E% ^y=1:3;
! Q. x8 Z& I8 x8 [7 l2 n, dtemps=[82 81 80 82 84;79 63 61 65 81;84 84 82 85 86];
' k$ K/ k6 F3 M2 p+ o$ P8 Exi=1:0.2:5;
# |/ W0 |. a* L- ]- l7 h; eyi=1:0.2:3;
$ ?; L# V/ Y. }" Q8 ^zi=interp2(x,y,temps,xi',yi,'spline');
: C' A- ^* ~ k; T7 U
6 w! o. Z9 \( }8 K9 n f9 s8 H
3 D+ M$ J0 Y$ u4 e3 ~7 H, V$ E( E) I
/ k& T" J( E8 `3 Zy = interp2(x0,y0,z0,x,y,'v4'); %二维插值--散乱点
8 j7 m; x" D' w% Z+ D9 b$ u! I; ^7 C- O, v3 A8 X- O
%示例
* k+ ?$ X; t R+ H' Y1 rx=[129.0 140.0 103.5 88.0 185.5 195.0 105.5 157.5 107.5 77.0 81.0 162.0 162.0 117.5 ];& u" e/ y: H8 h: E0 P
y=[ 7.5 141.5 23.0 147.0 22.5 137.5 85.5 -6.5 -81 3.0 56.5 -66.5 84.0 -33.5 ];8 U2 A6 a! t3 A8 a4 _6 U
z=[ 4 8 6 8 6 8 8 9 9 8 8 9 4 9 ];* L9 S" P% H$ j, N Y4 V
x1=75:1:200;
* |, `) T) W- i3 q7 wy1=-50:1:150;
) q6 g3 j# T- `. I[x1,y1]=meshgrid(x1,y1);9 a4 t$ [- C) E6 k4 c
z1=griddata(x,y,z,x1,y1,'v4');
5 \' J% e( w4 {6 p- v- k
" s0 a4 J6 w# K8 |" J9 t* P- y: s& n1 ~5 p) h- S
2、拟合:! p; B3 G# D7 u& {; T; O5 Q
$ [5 }! S$ W2 o) c3 C总的的说,已知一组已知数据,寻求一个函数y = f (x),使 f (x)在某种准则下与所有数据点最为接近,即曲线拟合得最好。 K5 y+ k& O+ z$ v' l4 T2 S
按照函数的不同,可以将拟合问题进行分类。
: h3 \; H/ O4 i, h0 H9 n1 m7 g感觉多项式拟合比线性最小二乘法实用多了,就合并了吧23333
0 X- A# B3 s% l& D, s
* q- I F% r$ ]基本内容:5 \; ]) Q/ _6 U8 [8 x6 t
a=polyfit(x0,y0,m) %多项式拟合,线性最小二乘法就是使m=1' F9 P' o4 g! L' n! C1 N+ P
%m是最高次项系数,a返回m+1维向量(还有一个常数项系数)9 x7 A1 j ?" R; n& P
# M1 A- h$ D. n; G7 N%示例:
# Q4 S$ Z4 E. ]) |3 {1 D& }x=[1 2 3 4 5 6 7 8 9];
5 e& R3 R. v1 s, e: T$ Ny=[9 7 6 3 -1 2 5 7 20];
7 }# m R8 f: d$ Q+ pP=polyfit(x,y,3)
$ D: V7 I6 K. S6 f& h
/ g$ _% h* F- U( N1 W: u: P7 r, O$ L9 Q) T7 i
%指定函数拟合---看着头晕,贴一段代码要用直接调参就行
, n" w, U+ W/ ?) _" `( C6 j3 qsyms t;* }. s* I; Z7 }1 y0 R4 F- K
x=[0 0.4 1.2 2 2.8 3.6 4.4 5.2 6 7.2 8 9.2 10.4 11.6 12.4 13.6 14.4 15];0 y! | F6 z$ k& C* A$ K+ L
y=[1 0.85 0.29 -0.27 -0.53 -0.4 -0.12 0.17 0.28 0.15 -0.03 -0.15 -0.071 0.059 0.08 0.032 -0.015 -0.02];3 a6 d5 {$ ]1 E9 E u" U$ m
f=fittype('a*cos(k*t)*exp(w*t)','independent','t','coefficients',{'a','k','w'}); %输入要拟合的函数,以及参数,自变量等,自定义拟合函数
# o# Z" N9 c% G8 tcfun=fit(x',y',f) %显示拟合后的结果
8 S0 M8 R0 H9 ~xi=0:.1:20;
4 e5 p& A1 G; Z5 P, `8 `2 _yi=cfun(xi); R E5 q6 ^0 g5 o$ `" H
plot(x',y','r*',xi,yi,'b--');; K# a, v8 {1 \1 _# j+ T
3 G0 F5 g4 W; S
, ^; l7 v8 W: U区别:
% v5 R/ E+ X9 n* K" K0 Y) P9 a插值一般经过所有数据点,拟合不一定经过所有数据点7 F ?9 j/ u6 ^
插值不一定得到近似函数的表达形式,仅找到未知点对应值。拟合要求得到一个具体的近似函数表达式。
2 v$ ~+ a" j! _5 x9 J0 }3 b通常建议:数据比较准确,用插值;数据误差较大,用拟合
" v( i X3 b, N2 t ] Q参考资料:
* L' v' F) @8 |" U( C
3 w2 x/ E3 A: ` v数学建模之拟合插值方法: J7 l2 V4 n' U+ K4 ?2 C
数学建模-插值与拟合模型
" |+ A; C* i; E+ H- p. O; v3 j数学建模常规算法:插值和拟合3 D. m- W, E' n: ]) `
: D e" _1 b" P
二、K-means聚类与高斯混合聚类
/ g- i' M4 b3 o5 c& Q2 P3 p3 [7 S) C/ _0 A
常用于数据异常值诊断与剔除。8 q2 p0 U: y2 R/ m# ~
通过聚类检测离群点,进而进行删除
) ]# O9 g2 v- {% Q' I+ U
& |5 [( h6 f, i( M: Z: \) g: d1、 K-means聚类
; Q( I" x; M, F2 H& }! ^: G
* q$ T3 ~7 b6 d3 ]/ k( I9 p2、高斯混合聚类; Y1 G) C9 S! [$ ?6 R, W
% o5 a; |4 R$ o$ X7 I1 K5 e
涉及到聚类的知识,怪复杂的,等学到聚类再写吧。。。& _ I' @% N$ P' e# v
三、主成分分析
7 g! ~& M3 K' v
7 F7 T1 a6 n: @+ p. k常用于多维数据的降维,减少数据的冗余- u+ {! N1 t" ~7 p. }/ z
8 s* k2 d$ |4 a3 K; g u/ H, ~主成分分析(PCA), 用于将多个变量通过线性变换以选出较少个数重要变量。3 ?* u+ a5 v; m. l/ A
9 S& A: q- `! e3 _2 [2 h, t主成分与原始变量之间的关系:9 }# V. C' [. V, {0 I- [2 m
! ?- ~1 V7 [1 r2 b
(1)主成分保留了原始变量绝大多数信息。4 N9 l4 Y7 s+ Y w+ f1 [
: K# j1 _1 M2 I# N( e (2)主成分的个数大大少于原始变量的数目。' f* x* ~" o/ k2 Y) }' B" s) H
0 g4 k6 F* ?# x6 Y9 K; I! W4 z
(3)每个主成分都是原始变量的线性组合。
1 u7 V* [2 d' }4 E6 L" E. o) h
4 q0 H3 ]- Q; q: l- F" r; K (4)每个主成分的贡献率不同。1 h0 J; M8 y, F: L# t$ C8 \
2 b) x! t' h$ r" u: g
(5)各个主成分之间互不相关。
. T. x% ]! ?1 [8 E% ?" M
/ D* \2 r% @* q% Z r7 D9 t! u$ D处理步骤:) M# ~8 E3 D$ k
. s& q8 `* T3 n; G+ K/ @数据标准化
; I* B5 b/ ~0 Z/ |计算相关系数矩阵 i7 b) f" J! z* L& r: [, g
计算特征值与特征向量( M# ^) l {+ o
求出贡献率与累计贡献率(一般累计贡献率达到85%即可)
% J, ?0 W/ W% f1 v m! T% w计算主成分载荷(即线性系数)与主成分得分
% F: b8 W6 ^, b0 A& y* v" P$ d/ o代码:
3 K. ~/ q+ s R$ {%示例:%示例:
5 N/ ]; E: r3 A% B9 ada=xlsread('data.xlsx');% R) ~! n9 y+ A" n2 ~( M
%%标准化矩阵
& s4 \; S+ a1 l) dda=zscore(da);# B9 w6 }1 M/ T7 w7 ?: y* R
fprintf('相关系数矩阵:\n')
# y& ? e$ w5 a8 R/ |std=corrcoef(da) %计算相关系数矩阵 F* L' g, F% c
[vec,val]=eig(std); %求特征值(val)及特征向量(vec) 1 ]3 q+ K9 y. h9 y
newval=diag(val) ;
2 D' }, ?7 s9 S5 X0 N6 M[y,i]=sort(newval) ; %对特征根进行排序,y 为排序结果,i 为索引 1 }3 F' o: x$ q8 Z% H9 W
fprintf('特征根排序:\n')0 `* L3 T( U6 V r& t% B
for z=1:length(y)
6 @& x6 m' d: P7 }8 V: h' W& {- a newy(z)=y(length(y)+1-z); - ]8 O. s6 u4 ]. j: J
end1 M! |, D X& x) l
fprintf('%g\n',newy) %%显示特征根# q# i3 g% u1 M# X# \- _, x" u" o0 y, s
rate=y/sum(y);
6 N+ X5 l* i- {4 {+ T' e" p; O9 }fprintf('贡献率:\n') + a. g+ M7 B& d3 d
newrate=newy/sum(newy)
1 Y* H2 O3 x' V) J# Msumrate=0; 5 \$ R4 o. d8 _* V* E5 f2 B
newi=[];
6 h, ?) X+ a4 C$ Zfor k=length(y):-1:1
# W# W! U5 F' m3 y( l, [ sumrate=sumrate+rate(k); 6 B) g+ ]+ Y, E9 a4 Z1 R) N
newi(length(y)+1-k)=i(k);
k' U. v5 j9 k; e$ O if sumrate>0.85 %记下累积贡献率大于85%的特征值的序号放入 newi 中
5 K* X$ R( w. y* F7 G( e; @ break;
2 k7 P4 O' P3 e4 N2 g2 }! | end# G$ Q" y0 d |8 F
end
3 F9 G; s! `6 A" X s& Zfprintf('主成分数:%g\n\n',length(newi));
6 D& g& @- }* m/ F5 H5 nfor p=1:length(newi) - i( h U& W6 x" y
for q=1:length(y) : u% F) ^: Z0 E Y3 ?8 M3 F$ H1 T
vector2(q,p)=sqrt(newval(newi(p)))*vec(q,newi(p));%%%主成分载荷
, f7 \ ?) y+ x( Y end& E( _. Y0 \2 u6 \
end6 J* L& @/ \1 `. O7 {/ C
fprintf('显示载荷:\n'); / S3 m) @8 f* l! ]/ z! c' f
disp(vector2); %显示载荷 %%%求各主成分得分 7 a, D, o0 i! C+ J6 W' ~9 n
sco=da*vector2;
% `1 Z* K! H9 o2 _$ T3 d1 v1 kcsum=sum(sco,2);
( `5 e% Q8 A" E U" p[newcsum,i]=sort(-1*csum);
* z/ j8 d% A2 |4 t. J[newi,j]=sort(i);
! T# I# m* R' d5 Y9 j+ [' Bfprintf('计算得分:\n') %得分矩阵:sco 为各主成分得分;csum 为综合得分;j 为排序结果
" a( F9 G5 C$ F V) y( ]' yscore=[sco,csum,j]4 ~/ A# P) v% E
# e, u1 ?0 c3 _" }0 k6 m参考资料:+ h1 ^" T# {9 d$ C" g4 }4 S
关于主成分分析matlab代码实现的总结
% p' l- ~! F- F3 O h4 i2 S2 M数学建模算法笔记(2)——主成分分析4 ?* f) H# F+ W1 z
数学建模之主成分分析matlab8 K3 Z5 V8 ]$ p
数学建模之主成分分析法
' o5 N* L7 L0 q
, w: q7 U4 ]- X四、方差分析与协方差分析
V+ e) [6 K! t6 }$ R; Z) f4 E4 B
# i1 B7 A9 a8 ?8 z1 {+ Q; B1 U- S常用于数据截取与特征选择。通俗的来说,就是判断某个特征对结果对影响是否显著。
6 b6 _4 B& Q! f& G. J7 d9 R2 u4 J$ a1 O) O1 z8 Y7 \/ l
1、方差分析
" W m% l7 O& o/ M2 F* U" J* X7 b9 q' @% d5 Y' s
(1)单因素方差分析( k* q; Q9 @% Z, Y: X
/ a0 F+ H8 }' R V3 x& H. f6 _, E维持其他因素保持不变,仅仅对一个因素进行考虑并计算方差,这称为单因素方差分析。4 E5 ]7 L/ ~9 B/ K/ Z
: e9 P- [7 s; D; |
数据集分为均衡数据(各组数据个数相等)与非均衡数据(各组数据个数不等)。2 g1 G- E: j( R: r1 p0 r
%均衡数据
- {( n9 l; ]; a. \p=anova1(x) %p是一个概率;x每一行代表不同样本,每一列代表特征中的不同序号2 E O" s1 `9 u
! J; }/ L/ Z, ^%示例$ J1 V+ N; n. p/ k
x=[162 158 146 1500 q# C+ M' [/ I: c: ~# r
167 160 154 155: t5 c% F# ~/ s( H: L
170 164 162 161
+ X* V( a( A" m4 k( Y175 172 168 180];3 b; L! }2 f7 {0 D }
0 C% d: Y. Y( D2 z7 Zp=anova1(x)
4 j! R. A5 K8 S1 A- U- E( E0 ~- Y# j; \
7 ]3 ^- `1 I- L; O5 f- }1 i* d: E- K% a& I, O! } L
2 r" `' m$ e* G+ ?. f求得 p=0.1109>0.05,所以几种工艺制成的灯泡寿命没有显著差异
0 r5 j9 ?- D+ l$ N' k6 b4 E* w; k* {/ c" `2 j
%非均衡数据5 p- _: ?, b! w% s: C) D1 k. N
p=anova1(x,group) %x为向量,从第1组到第r组数据依次排列;roup为与x同长度的向量,标志x中数据的组别(在于x第i组数据相对应的位置出输入整数i) l6 a+ I) ?. m
" T, B5 K$ w7 g( Q2 f& ^: w%示例1 k# Q% f) s/ U$ z& Q- {5 n
x=[1620 1580 1460 1500' F( x6 r5 _% D( g& C
1670 1600 1540 1550# v7 F5 g/ i; c; r7 N! x
1700 1640 1620 16105 g8 J. ~) T# t/ v- B
1750 1720 1680 1800];
, A5 Q+ P3 w( t" G, Ix=[x(1:4),x(16),x(5:8),x(9:11),x(12:15)];1 I. S0 p3 j/ F$ Z3 z6 h" g
g=[ones(1,5),2*ones(1,4),3*ones(1,3),4*ones(1,4)];$ p0 j$ f5 w! @3 M% R
p=anova1(x,g)# B# y( g6 j# `) j: l3 }
0 ^; Q" ?' ~' W- N) e+ @4 j2 Z: M% H
0 E8 C7 z! S8 V/ f0 \
求得 0.01<p=0.0331<0.05,所以几种工艺制成的灯泡寿命有显著差异 单因素方差分析结果对应一般如下(单因素显著性水平取0.05): 9 E9 S( R. v+ @$ x9 |# W
2 b; N0 c4 c( ?8 R7 m/ sp值结果
! o u" W2 l2 z9 E; jp<0.01非常显著
' Z. O6 o8 ]' p/ A' W; d0 a0.01<p<0.05显著! C" k& }6 h, G9 M r* U
p>0.05不显著* [4 X* y) Y- x# `* b
(2)双因素方差分析
" I1 V& q# f! w% A0 B3 x. E: W& o0 i2 a* Y
与单因素方差分析类似,这次我们探究两个因素。对两个因素的实验可能进行一次,或者很多次。, {5 u; h8 [' z) _5 f9 ?1 T. j' R1 S
t( ]& s9 ~+ I2 e) H6 M3 `8 `单一观测值:
6 G) t& q6 V; i# d) [9 Mp=anova2(x) %x不同列的数据表示单一因素的变化情况,不同行中的数据表示另一因素的变化情况+ p. p: U. b5 z' w+ w+ Y
- d: N c2 e- j0 O# p' b
%示例1 w2 h# Y# q* B7 l1 H
x=[58.2 56.2 65.30 i/ @0 J1 U4 C: J" q
49.1 54.1 51.6* N- F3 }! s. R5 l4 A/ }: e
60.1 70.9 39.2
+ l. p* b) s0 q; A2 q75.8 58.2 48.7];
$ c( O- S- t0 R p- ^1 a[p,t,st]=anova2(x)
! n. O- {: \& X% G) l- b* z [
6 J, @' X, E& R7 e4 j: X9 A' h( W4 ~2 B
求得p=0.4491 0.7387,均>0.10,表明两个特征不同数据之间的差异对于结果无显著影响。9 j7 r8 F* }8 J3 |
5 u% h3 o5 f3 `% X7 a
多观测值:
& @# |/ g( Z. D/ _# C z5 ep=anova2(x,reps) %如果每一“单元”有不止一个观测值,则用参数reps来表明每个“单元”多个观测值的不同标号,即reps给出重复试验的次数t
% s' N4 Q o- M9 o( ^2 T
& o! P9 w0 A6 K" A) C I- i! N8 L%示例
5 |: f! f# S/ L: |; Bx0=[58.2 52.6 56.2 41.2 65.3 60.8
$ e; I4 K$ ^4 S9 |: F49.1 42.8 54.1 50.5 51.6 48.4: V0 V3 e; O. \: x: p# t* l
60.1 58.3 70.9 73.2 39.2 40.7: [( Y0 y0 U5 |/ B. ~/ l1 A
75.8 71.5 58.2 51.0 48.7 41.4];
z; @4 ~8 A+ Ux=x0';
, r% k' ~$ T7 S' b6 G$ T* d[p,t,st]=anova2(x,2)- @( b1 |* A6 E% x" o1 P
. \' M1 `5 L9 T1 A6 Z7 o* c
1 V( B6 g* j$ V) ]: X2 V求得p = 0.0035 0.0260 0.0001,其中第三个参数表明两个特征联合作用下对结果的影响。结果表明,这两个特征的影响均是显著的。
D! r. \1 T2 `* _2 x) C$ L4 c4 V' g) P$ S/ R% y
值得注意的是,上式使用转置,保证x的形式如下图所示(需要注意行列分别代表的含义):
+ W( b+ ~/ P( U* w" z0 d% w! }9 n 1 V+ ~8 J2 r' F; G3 V
其中,一二维代表特征维,第三维代表样本维。
B; O7 z0 x; v9 K4 V% i1 g% X4 {. }0 x
(3)多因素方差分析
! q. d( y9 U. l. n* f: u0 ]; }. n/ ]) m; i
这里用到了正交表的处理方法,我们直接使用anovan函数:
$ L1 x3 U2 c% D, m
2 b: W) f" e7 Q, Z- ^![]()
6 Y. r# ^, n# u& f' T( ^/ m6 f' d其中,特征样本不同的取值用特征水平1,2,3…来替代。* P$ t4 J- F. H, V4 }0 O
/ `7 M( G1 r' ^
最后,双因素与多因素方差分析结果对应一般如下(双因素与多因素显著性水平取0.10):
1 @1 x( r9 A d2 op值结果) E+ {- i0 A* u
p<0.01非常显著
3 }* Q' r, g. V' [6 Q# Q" R0.01<p<0.10显著9 Z$ G2 o: J( M/ L% v9 q& i
p>0.10不显著
8 S' l6 {4 z' p1 G, ~/ A& N
* u$ O( r: ~: R2、协方差分析
- `: L. R \, Q; N2 {
6 E* Z- r! S3 F- j; m对于特定的特征,为了寻找那些样本之间差异较大,运用协方差分析。
+ |0 l4 G( x, q+ Z# W3 E) f% }' c5 o+ l7 z
在进行完方差分析的基础上,进行协方差分析。- D g) I. E7 f! [8 [* T
%分析列
) s& k0 f" u, h5 h' C1 R% Q/ C- cCOMPARISON = multcompare(st,'alpha',0.05, 'estimate','column')
: H. Y$ x, P: T3 c3 Z) q' j%分析行
+ C7 c( O) c8 ?COMPARISON = multcompare(st,'alpha',0.05, 'estimate','row')# m3 x, h2 z7 ]) V1 O3 t" @
6 G% |) @8 @) t; V- ?* B; v$ Q2 r/ b8 M. I5 J1 k
参考资料:
) p( H) F4 h; Z+ Q数学建模常用模型19 :方差分析% J0 \; P& i. H
数学建模之方差分析1 D( D1 d( e1 M; I( ^/ \5 F" f, S
————————————————
- }- n3 W) @# @. e6 D) A原文链接:https://blog.csdn.net/soviet1941/article/details/104120359
- ?- n! `$ _* S, b' s9 ~
. d& h1 a& x& t" t0 d; [0 z8 f- F; s. t$ Y
|
zan
|