热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

优化matlab作业,现代设计优化算法MATLAB实现

开篇语前阵子做现代设计方法的时候,发现网上很是缺乏这种作业形式的简易算法实现,所以特地来简书写一篇。有两份,一份是我的(说来惭愧ÿ

开篇语

前阵子做现代设计方法的时候,发现网上很是缺乏这种作业形式的简易算法实现,所以特地来简书写一篇。有两份,一份是我的(说来惭愧,我的大部分都是在网上找的代码,然后在自己的电脑上跑一次,跑出来了就行了的。而且我的电脑跑到2-11就扑街了。暂时还没有拿去修,所以,其实我的代码都是在网上整理之后调整了下就上的,准确性不敢保证)另一份是我的室友的,据他说是全部经过调试的,虽然还是有不少的错误,但是应该比我的要好一点。

f4efe9f0dfd7

我的电脑

另外,我的电脑因为崩了,所以我的代码无法验证结果,为了交作业,只能把我的室友的那些运行结果直接上一遍了。估计有点出入,见谅,重要的是代码

正文

2-10

f4efe9f0dfd7

2-10

我的:

黄金分割法:

f=@(x) x+20/x

golden(f,2,10,0.01)

function[xmin]=golden(f,a,b,e)

k=0;

a1=b-0.618*(b-a); %插入点的值

a2=a+0.618*(b-a);

while b-a>e %循环条件

y1=subs(f,a1);

y2=subs(f,a2);

if y1>y2 %比较插入点的函数值的大小

a=a1; %进行换名

a1=a2;

y1=y2;

a2=a+0.618*(b-a);

else

b=a2;

a2=a1;

y2=y1;

a1=b-0.618*(b-a);

end

k=k+1;

end %迭代到满足条件为止就停止迭代

xmin=(a+b)/2;

fmin=subs(f,xmin) %输出函数的最优值

fprintf('k=\n'); %输出迭代次数

disp(k);

f = @(x)x+20/x

>> [x,y]=golden(f,2,10,0.01)

x =

4.4683

y =

8.9443

二次插值法:

f=@(x) x+20/x;

a=2;b=10;

eps=1.0e-6; % 计算精度

x1=a;x3=b;

x2=(a+b)/2;

f1 = f(x1);f2 = f(x2);f3 = f(x3);

while 1

C1=(x2^2-x3^2)*f1+(x3^2-x1^2)*f2+(x1^2-x2^2)*f3;

C2=(x2-x3)*f1+(x3-x1)*f2+(x1-x2)*f3;

xp=0.5*C1/C2;

fp= f(xp);

if abs(x2-xp)<&#61;eps % 区间长度小于eps时

if abs(f2-fp)<&#61;eps % df小于eps时退出

if fp<&#61;f2

xmin &#61; xp

fmin &#61; f(xp) % 极小值

break;

else

xmin &#61; x2

fmin &#61; f(x2) % 极小值

break;

end

end

else

if fp<&#61;f2

if xp<&#61;x2

x3&#61;x2;

x2&#61;xp;

f3&#61;f2;

f2&#61;fp;

else

x1&#61;x2;

x2&#61;xp;

f1&#61;f2;

f2&#61;fp;

end

else

if xp<&#61;x2

x1&#61;xp;

f1&#61;fp;

else

x3&#61;xp;

f3&#61;fp;

end

end

end

end

f&#61;x&#43;20/x;[xmin,fmin]&#61;main(f,2,10,0.01)

xmin &#61;

4.4869

fmin &#61;

8.9443

室友的&#xff1a;

黄金分割法函数&#xff1a;

f&#61;&#64;(x) x&#43;20/x

yellowking(f,2,10,0.01)

function[xmin]&#61;yellowking(f,a,b,e)

k&#61;0;

a1&#61;b-0.618*(b-a); %插入点的值

a2&#61;a&#43;0.618*(b-a);

while b-a>e %循环条件

y1&#61;subs(f,a1);

y2&#61;subs(f,a2);

if y1>y2 %比较插入点的函数值的大小

a&#61;a1; %进行换名

a1&#61;a2;

y1&#61;y2;

a2&#61;a&#43;0.618*(b-a);

else

b&#61;a2;

a2&#61;a1;

y2&#61;y1;

a1&#61;b-0.618*(b-a);

end

k&#61;k&#43;1;

end %迭代到满足条件为止就停止迭代

xmin&#61;(a&#43;b)/2;

fmin&#61;subs(f,xmin) %输出函数的最优值

fprintf(&#39;k&#61;\n&#39;); %输出迭代次数

disp(k);

结果指令&#xff1a;

f&#61;&#64;(x)x&#43;20/x

f &#61;

&#64;(x)x&#43;20/x

>> [x,y]&#61;gold(f,2,10,0.01)

x &#61;

4.4683

y &#61;

8.9443

二次插值法函数&#xff1a;

function [xmin,fmin]&#61; main(f,a0,b0,epsilon)

a&#61;a0;

b&#61;b0;

x1&#61;a;

f1&#61;f(x1);

x3&#61;b;

f3&#61;f(x3);

x2&#61;5;

f2&#61;f(x2);

c1&#61;(f3-f1)/(x3-x1);

c2&#61;((f2-f1)/(x2-x1)-c1)/(x2-x3);

xp&#61;0.4*(x1&#43;x3-c1/c2);fp&#61;f(xp);

while (abs(xp-x2)>&#61;epsilon)

if x2

if f2>fp

f1&#61;f2;x1&#61;x2;

x2&#61;xp;f2&#61;fp;

else

f3&#61;fp;x3&#61;xp;

end

else

if f2>fp

f3&#61;f2;x3&#61;x2;

f2&#61;fp;x2&#61;xp;

else

f1&#61;fp;x2&#61;xp;

end

end

c1&#61;(f3-f1)/(x3-x1);

c2&#61;((f2-f1)/(x2-x1)-c1)/(x2-x3);

xp&#61;0.5*(x1&#43;x3-c1/c2);

fp&#61;f(xp);

end

if f2>fp

xmin&#61;xp;fmin&#61;f(xp);

else

xmin&#61;x2;fmin&#61;f(x2);

end

end

结果&#xff1a;

clear all;f&#61;x&#43;20/x;[xmin,fmin]&#61;main(f,2,10,0.01)

xmin &#61;

4.4869

fmin &#61;

8.9443

2-11

f4efe9f0dfd7

2-11

我的&#xff1a;

2-11

function [k ender]&#61;steepest(f,x,e)

%梯度下降法,f为目标函数(两变量x1和x2)&#xff0c;x为初始点,如[3;4]

syms x1 x2 m; %m为学习率

d&#61;-[diff(f,x1);diff(f,x2)]; %分别求x1和x2的偏导数&#xff0c;即下降的方向

flag&#61;1; %循环标志

k&#61;0; %迭代次数

while(flag)

d_temp&#61;subs(d,x1,x(1)); %将起始点代入&#xff0c;求得当次下降x1梯度值

d_temp&#61;subs(d_temp,x2,x(2)); %将起始点代入&#xff0c;求得当次下降x2梯度值

nor&#61;norm(d_temp); %范数

if(nor>&#61;e)

x_temp&#61;x&#43;m*d_temp; %改变初始点x的值

f_temp&#61;subs(f,x1,x_temp(1)); %将改变后的x1和x2代入目标函数

f_temp&#61;subs(f_temp,x2,x_temp(2));

h&#61;diff(f_temp,m); %对m求导&#xff0c;找出最佳学习率

m_temp&#61;solve(h); %求方程&#xff0c;得到当次m

x&#61;x&#43;m_temp*d_temp; %更新起始点x

k&#61;k&#43;1;

else

flag&#61;0;

end

end

ender&#61;double(x); %终点

end

syms x1 x2;

f&#61;x1^2&#43;x2^2-x1*x2-10*x1-4*x2&#43;60;

x&#61;[0;0];

e&#61;0.01;

[k ender]&#61;steepest(f,x,e)

ender &#61;

7.9961

5.9971

室友的&#xff1a;

2-11:

梯度函数&#xff1a;

function [k,ender]&#61;tidu(f,x,e)

syms x1 x2 m;

d&#61;-[diff(f,x1);diff(f,x2)];

flag&#61;1;

k&#61;0;

while(flag)

d_temp&#61;subs(d,x1,x(1));

d_temp&#61;subs(d_temp,x2,x(2));

nor&#61;norm(d_temp);

if(nor>&#61;e)

x_temp&#61;x&#43;m*d_temp;

f_temp&#61;subs(f,x1,x_temp(1));

f_temp&#61;subs(f_temp,x2,x_temp(2));

h&#61;diff(f_temp,m);

m_temp&#61;solve(h);

x&#61;x&#43;m_temp*d_temp;

k&#61;k&#43;1;

else

flag&#61;0;

end

end

ender&#61;double(x);

end

结果指令&#xff1a;

syms x1 x2;

f&#61;x1^2&#43;x2^2-x1*x2-10*x1-4*x2&#43;60;

x&#61;[0;0];

e&#61;0.01;

[k ender]&#61;tidu(f,x,e)

ender &#61;

7.9961

5.9971

f4efe9f0dfd7

2-12

我的&#xff1a;

2-12

展开为二阶泰勒式

syms x1 x2;

taylor(x1^4&#43;2*x2^3-3*x1^2*x2)

ans &#61;

3*x2 - 2*x1 - 6*(x1 - 1)*(x2 - 1) &#43; 3*(x1 - 1)^2 &#43; 6*(x2 - 1)^2 - 1

牛顿法求解&#xff1a;

function all&#61;newton(f,x,e)

syms x1 x2 h;

d&#61;-[diff(f,x1);diff(f,x2)];

h&#61;hessian(f);

flag&#61;1;

h1&#61;h^-1;

while (flag)

d_temp&#61;subs(d,x1,x(1));

d_temp&#61;subs(d_temp,x2,x(2));

nor&#61;norm(d_temp);

if(nor>&#61;e)

x&#61;x&#43;h1*d_temp;

else

flag&#61;0;

end

end

all&#61;double(x);

结果指令&#xff1a;

clear all

>> syms x1 x2;

f&#61;3*x2 - 2*x1 - 6*(x1 - 1)*(x2 - 1) &#43; 3*(x1 - 1)^2 &#43; 6*(x2 - 1)^2 - 1;

x&#61;[1;1];

e&#61;0.01;all&#61;newton(f,x,e)

all &#61;

1.1667

0.8333

室友的&#xff1a;

2-12:

展开为二阶泰勒式

syms x1 x2;

taylor(x1^4&#43;2*x2^3-3*x1^2*x2)

ans &#61;

3*x2 - 2*x1 - 6*(x1 - 1)*(x2 - 1) &#43; 3*(x1 - 1)^2 &#43; 6*(x2 - 1)^2 - 1

牛顿函数&#xff1a;

function all&#61;newton(f,x,e)

syms x1 x2 h;

d&#61;-[diff(f,x1);diff(f,x2)];

h&#61;hessian(f);

flag&#61;1;

h1&#61;h^-1;

while (flag)

d_temp&#61;subs(d,x1,x(1));

d_temp&#61;subs(d_temp,x2,x(2));

nor&#61;norm(d_temp);

if(nor>&#61;e)

x&#61;x&#43;h1*d_temp;

else

flag&#61;0;

end

end

all&#61;double(x);

结果指令&#xff1a;

clear all

>> syms x1 x2;

f&#61;3*x2 - 2*x1 - 6*(x1 - 1)*(x2 - 1) &#43; 3*(x1 - 1)^2 &#43; 6*(x2 - 1)^2 - 1;

x&#61;[1;1];

e&#61;0.01;all&#61;newton(f,x,e)

all &#61;

1.1667

0.8333

f4efe9f0dfd7

2-13(1)

我的&#xff1a;

2-13(1)

外点惩罚函数法&#xff1a;

function [ x,y ] &#61; Epfm_min( fx,gx,hx,xx0,s,c,a)

%fx是目标函数

%gx是不等式约束方程组(且g>&#61;0)

%xx0是初始点

%hx是等式约束方程组(且h&#61;0)

%s是精确度(s>0)

%c是放大系数(c>1)

%a是罚因子(默认为1)

syms x1 x2

xx1&#61;xx0;

v&#61;[x1,x2];

a1&#61;a;

Pxk&#61;1;%假设Px等于1&#xff0c;以免不必要错误

G&#61;-subs(gx,v,xx1);%用于判别max{0,-g(x)}

while Pxk>s

if(G<0)

Px&#61;a1*hx*hx;

else

Px&#61;a1*hx*hx&#43;a1*gx*gx;

end

Fx&#61;fx&#43;a1*Px;%将约束问题化为了一个无约束的问题

% 接下来解min F(x)

dFx1&#61;diff(Fx,x1);%分别对x1&#xff0c;x2求偏导数

dFx2&#61;diff(Fx,x2);

[k,b]&#61;solve(dFx1,dFx2,&#39;x1&#39;,&#39;x2&#39;);%求出

xx2&#61;xx1&#43;[k,b];

Pxk&#61;a1*subs(Px,v,xx2);

xx1&#61;xx2;%相当于置k&#61;k&#43;1

a1&#61;c*a1;%罚因子放大

G&#61;-subs(gx,v,xx1);%用于判别max{0,-g(x)}

end

x&#61;xx1;

y&#61;a1/c;

syms x1 x2;

fx&#61;x1&#43;x2;

gx&#61;-x1;

hx&#61;x1^2-x2;

s&#61;10.^-5

c&#61;10

xx0&#61;[0,0]

a&#61;1;

[x,y]&#61;Epfm_min( fx,gx,hx,xx0,s,c,a)

>> x&#61;[0.1;0.2];k&#61;0.1;e&#61;0.01;r&#61;1;[x,minf]&#61; Epfm_min (p,x,k,r,e)

x &#61;

0.0015

minf &#61;

0.0030

Ans&#61;

0.0045

内点惩罚函数法

function [x,minf]&#61;minNF(f,x0,g,u,v,var,eps)

format long;

if nargin&#61;&#61;6

eps&#61;1.0e-4;

end

k&#61;0;

FE&#61;0;

for i&#61;1:length(g)

FE&#61;FE&#43;1/g(i);

end

x1&#61;transpose(x0);

x2&#61;inf;

while 1

FF&#61;u*FE;

SumF&#61;f&#43;FF;

[x2,minf]&#61;minNT(SumF,transpose(x1),var);

Bx&#61;Funval(FE,var,x2);

if u*Bx

if norm(x2-x1)<&#61;eps

x&#61;x2;

break;

else

u&#61;v*u;

x1&#61;x2;

end

else

if norm(x2-x1)<&#61;eps

x&#61;x2;

break;

else

u&#61;v*u;

x1&#61;x2;

end

end

end

minf&#61;Funval(f,var,x);

format short;

syms x1 x2 r1;

>> p&#61;taylor(x1&#43;x2-r1*(1/(x1^2-x2)-1/x1),[x1 x2],[0.001 0.002],&#39;Order&#39;,3);

>> x&#61;[0.1;0.2];k&#61;0.1;e&#61;0.01;r&#61;1;[x,minf]&#61; minNF(p,x,k,r,e)

x &#61;

0.0015

minf &#61;

0.0030

Ans&#61;

0.0045

室友的&#xff1a;

2-13&#xff1a;

内点&#xff1a;

惩罚函数&#xff1a;

function anll&#61;neicheng(p,x,k,r,e)

syms x1 x2 r1;

flag1&#61;1;

while (flag1)

pd&#61;subs(p,r1,r);

xold&#61;x;

flag2&#61;1;

while (flag2)

dp&#61;-[diff(pd,x1);diff(pd,x2)];

h&#61;hessian(pd,[x1,x2]);

h1&#61;h^-1;

dp_temp&#61;subs(dp,x1,x(1));

dp_temp&#61;subs(dp_temp,x2,x(2));

nor&#61;norm(dp_temp);

if(nor>&#61;e)

x&#61;x&#43;h1*dp_temp;

else

flag2&#61;0;

end

end

x_temp&#61;x;

nor2&#61;norm(x_temp-xold);

if double(nor2)>&#61;e

r&#61;k*r;

else

flag1&#61;0;

end

end

anll&#61;double(x);

结果&#xff1a;

clear all; syms x1 x2 r1;

>> p&#61;taylor(x1&#43;x2-r1*(1/(x1^2-x2)-1/x1),[x1 x2],[0.001 0.002],&#39;Order&#39;,3);

>> x&#61;[0.1;0.2];k&#61;0.1;e&#61;0.01;r&#61;1;anll&#61;neicheng(p,x,k,r,e)

anll &#61;

0.0015

0.0030

Ans&#61;

0.0045

外点&#xff1a;

惩罚函数&#xff1a;

function annn&#61;waicheng(p,x,k,r,e)

syms x1 x2 r1;

flag1&#61;1;

while (flag1)

pd&#61;subs(p,r1,r);

xold&#61;x;

flag2&#61;1;

while (flag2)

dp&#61;-[diff(pd,x1);diff(pd,x2)];

h&#61;hessian(pd,[x1,x2]);

h1&#61;h^-1;

dp_temp&#61;subs(dp,x1,x(1));

dp_temp&#61;subs(dp_temp,x2,x(2));

nor&#61;norm(dp_temp);

if(nor>&#61;e)

x&#61;x&#43;h1*dp_temp;

else

flag2&#61;0;

end

end

x_temp&#61;x;

nor2&#61;norm(x_temp-xold);

if double(nor2)>&#61;e

r&#61;k*r;

else

flag1&#61;0;

end

end

annn&#61;double(x);

结果&#xff1a;

clear all; syms x1 x2 r1;

p&#61;taylor(x1&#43;x2,[x1 x2],[0.001 0.002],&#39;Order&#39;,3);

x&#61;[0.1;0.2];k&#61;0.1;e&#61;0.01;r&#61;1;annn&#61;waicheng(p,x,k,r,e)

annn &#61;

0.0015

0.0030

Ans&#61;

0.0045

f4efe9f0dfd7

2-14

我的(貌似这题抄的他的)&#xff1a;

2-14

function [x,minf] &#61; minMixFun(f,g,h,x0,r0,c,var,eps)

gx0 &#61; Funval(g,var,x0);

if gx0 >&#61; 0;

else

disp(&#39;初始点必须满足不等式约束&#xff01;&#39;);

x &#61; NaN;

minf &#61; NaN;

return;

end

if r0 <&#61; 0

disp(&#39;初始障碍因子必须大于0&#xff01;&#39;);

x &#61; NaN;

minf &#61; NaN;

return;

end

if c >&#61; 1 || c <0

disp(&#39;缩小系数必须大于0且小于1&#xff01;&#39;);

x &#61; NaN;

minf &#61; NaN;

return;

end

if nargin &#61;&#61; 7

eps &#61; 1.0e-6;

end

FE &#61; 0;

for i&#61;1:length(g)

FE &#61; FE &#43; 1/g(i);

end

FH &#61; transpose(h)*h;

x1 &#61; transpose(x0);

x2 &#61; inf;

while 1

FF &#61; r0*FE &#43; FH/sqrt(r0);

SumF &#61; f &#43; FF ;

[x2,minf] &#61; minNT(SumF,transpose(x1),var);

if norm(x2 - x1)<&#61;eps

x &#61; x2;

break;

else

r0 &#61; c*r0;

x1 &#61; x2;

end

end

minf &#61; Funval(f,var,x);

Funval.m

function fv &#61; Funval(f,varvec,varval)

var &#61; findsym(f);

varc &#61; findsym(varvec);

s1 &#61; length(var);

s2 &#61; length(varc);

m &#61;floor((s1-1)/3&#43;1);

varv &#61; zeros(1,m);

if s1 ~&#61; s2

for i&#61;0: ((s1-1)/3)

k &#61; findstr(varc,var(3*i&#43;1));

index &#61; (k-1)/3;

varv(i&#43;1) &#61; varval(index&#43;1);

end

fv &#61; subs(f,var,varv);

else

fv &#61; subs(f,varvec,varval);

end

Syms x1 x2;

f&#61;x1^2-x2^2-3*x2;

g&#61;1-x1;

h&#61;x2-2;

[x,minf]&#61;minMixFun(f,g,h,[2,2],2,0.5,[x1 x2 ],0.001)

x &#61;

1.0015

minf&#61;

2.0002

室友的&#xff1a;

2-14&#xff1a;

混合&#xff1a;

惩罚函数&#xff1a;

function [x,minf] &#61; MixPunish(f,g,h,x0,r0,c,var,eps)

gx0 &#61; Funval(g,var,x0);

if gx0 >&#61; 0;

else

disp(&#39;初始点必须满足不等式约束&#xff01;&#39;);

x &#61; NaN;

minf &#61; NaN;

return;

end

if r0 <&#61; 0

disp(&#39;初始障碍因子必须大于0&#xff01;&#39;);

x &#61; NaN;

minf &#61; NaN;

return;

end

if c >&#61; 1 || c <0

disp(&#39;缩小系数必须大于0且小于1&#xff01;&#39;);

x &#61; NaN;

minf &#61; NaN;

return;

end

if nargin &#61;&#61; 7

eps &#61; 1.0e-6;

end

FE &#61; 0;

for i&#61;1:length(g)

FE &#61; FE &#43; 1/g(i);

end

FH &#61; transpose(h)*h;

x1 &#61; transpose(x0);

x2 &#61; inf;

while 1

FF &#61; r0*FE &#43; FH/sqrt(r0);

SumF &#61; f &#43; FF ;

[x2,minf] &#61; minNT(SumF,transpose(x1),var);

if norm(x2 - x1)<&#61;eps

x &#61; x2;

break;

else

r0 &#61; c*r0;

x1 &#61; x2;

end

end

minf &#61; Funval(f,var,x);

Funval.m

function fv &#61; Funval(f,varvec,varval)

var &#61; findsym(f);

varc &#61; findsym(varvec);

s1 &#61; length(var);

s2 &#61; length(varc);

m &#61;floor((s1-1)/3&#43;1);

varv &#61; zeros(1,m);

if s1 ~&#61; s2

for i&#61;0: ((s1-1)/3)

k &#61; findstr(varc,var(3*i&#43;1));

index &#61; (k-1)/3;

varv(i&#43;1) &#61; varval(index&#43;1);

end

fv &#61; subs(f,var,varv);

else

fv &#61; subs(f,varvec,varval);

end

Syms x1 x2;

f&#61;x1^2-x2^2-3*x2;

g&#61;1-x1;

h&#61;x2-2;

[x,minf]&#61;MixPunish(f,g,h,[2,2],2,0.5,[x1 x2 ],0.001)

x &#61;

1.0015

minf&#61;

2.0002

结束语

无聊到这地步想必也是没谁了。不过&#xff0c;刚考完&#xff0c;我总不能一直玩手机啊。前几天重新看《盘龙》让我在手机上刚了一星期&#xff0c;不能再这么毫无节制的玩耍了&#xff0c;但是又不想学习&#xff0c;所以只好写简书了~~

不过网上毕竟这方面的资源不是很多&#xff0c;我就算是为后来人做点好事吧&#xff0c;让你们好找一点~~

个人宣言

知识传递力量&#xff0c;技术无国界&#xff0c;文化改变生活&#xff01;



推荐阅读
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
  • 本文讨论了一个数列求和问题,该数列按照一定规律生成。通过观察数列的规律,我们可以得出求解该问题的算法。具体算法为计算前n项i*f[i]的和,其中f[i]表示数列中有i个数字。根据参考的思路,我们可以将算法的时间复杂度控制在O(n),即计算到5e5即可满足1e9的要求。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • iOS Swift中如何实现自动登录?
    本文介绍了在iOS Swift中如何实现自动登录的方法,包括使用故事板、SWRevealViewController等技术,以及解决用户注销后重新登录自动跳转到主页的问题。 ... [详细]
  • This article discusses the efficiency of using char str[] and char *str and whether there is any reason to prefer one over the other. It explains the difference between the two and provides an example to illustrate their usage. ... [详细]
  • 本文为Codeforces 1294A题目的解析,主要讨论了Collecting Coins整除+不整除问题。文章详细介绍了题目的背景和要求,并给出了解题思路和代码实现。同时提供了在线测评地址和相关参考链接。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 本文介绍了C++中省略号类型和参数个数不确定函数参数的使用方法,并提供了一个范例。通过宏定义的方式,可以方便地处理不定参数的情况。文章中给出了具体的代码实现,并对代码进行了解释和说明。这对于需要处理不定参数的情况的程序员来说,是一个很有用的参考资料。 ... [详细]
author-avatar
aGreadyCat__895
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有