22、MATLAB任务解决方案详解

MATLAB任务解决方案精讲

MATLAB任务解决方案详解

在MATLAB编程中,解决各种任务需要掌握不同的方法和技巧。以下将详细介绍一系列MATLAB任务的解决方案。

1. 第1章任务解决方案
  • Solution 1.1 :求解一系列数学问题的MATLAB代码如下:
x = 1.3;
p = x^2+3*x+1;
x = 30/180*pi;
y = sin(x);
x = 1;
f = atan(x);
x = sqrt(3)/2;
h = acos(x);
g = sin(h);

运行此代码返回的值为:6.5900, 0.5000, 0.7854(即π/4)和0.5000。
- Solution 1.2 :计算函数y(x) = |x| sin x²,使用以下代码:

x = pi/3;
y = abs(x)*sin(x^2);

对于x = π/6,同样使用类似代码。需要注意括号和语法。
- Solution 1.3 :确定以下数量的MATLAB命令为:

sin(pi/2);
cos(pi/3);
tan(60/180*pi);
x=0.5; log(x+sqrt(x^2+1));
x=1; log(x+sqrt(x^2+1));
x=0; x/((x^2+1)*sin(x));
x=pi/4; x/((x^2+1)*sin(x));

注意,倒数第二个部分会生成NaN,因为MATLAB不知道如何计算零除以零。
- Solution 1.4 :可以通过输入所有值或利用MATLAB对向量的操作能力来完成。代码如下:

x = [0.3 1/3 0.5 1/2 1.65 -1.34];
round(x);
ceil(x);
floor(x);
fix(x);

此示例有助于理解各种MATLAB命令对不同取整方式的作用。
- Solution 1.5 :使用y值为4来说明rem和mod的区别:

x=[3 4 5];
rem(x,4);
mod(x,4);
rem(x,-4);
mod(x,-4);

当第二个参数为正时,rem和mod等价;当为负时,余数会带符号。
- Solution 1.6 :MATLAB代码如下:

x = 1:0.1:2;
% Part 1
y = x.^3+3*x.^2+1;
% Part 2
y = sin(x.^2);
% Part 3
y = (sin(x)).^2;
% Part 4
y = sin(2*x)+x.*cos(4*x);
% Part 5
y = x./(x.^2+1);
% Part 6
y = cos(x)./(1+sin(x));
% Part 7
y = 1./x+x.^3./(x.^4+5*x.*sin(x));
  • Solution 1.7 :代码为:
x = 3:0.01:5;
y = x./(x+1./x.^2);
  • Solution 1.8 :代码如下:
x = -2:0.1:-1;
f = 1./x;
y = f.^3+f.^2+3*f;
  • Solution 1.9 :正确的代码应该是:
clear all;
x = linspace(0,1,200);
g = x.^3+1;
h = x+2;
z = x.^2;
y = cos(x*pi);
f = y.*z./(g.*h);
f(200);

原代码存在一些错误,如第二行应放在第一行,linspace默认点数为100,需要指定为200;g的定义和f的计算缺少点乘;变量名大小写要区分;计算y时余弦函数参数需要括号和乘号;f和分数分母需要括号;最后需要打印答案。
- Solution 1.10 :正确代码为:

x = linspace(-2,2,20);
c = [1 0 0 0 -1];
y = polyval(c,x);
plot(x,y);

原代码第一行定义的向量会包含21个元素;四次多项式应该有5个系数,c的定义少了一个零;绘图命令中x和y不需要转置。
- Solution 1.11 :修正后的代码为:

x = 0:0.1:3;
f = x.^3.*cos(x+1);
% x = 2
f(21);
% x = 3
f(end);
2. 第2章任务解决方案
  • Solution 2.1 :只需输入代码并正确保存答案。
  • Solution 2.2 :修改后的代码如下:
a = input('Enter a : ');
b = input('Enter b : ');
res = a^b;
str1 = 'The answer is ';
str2 = ' when ';
str3 = ' is raised to the power ';
disp([str1 num2str(res) str2 num2str(a) str3 num2str(b)]);
  • Solution 2.3 :实现此功能的函数为:
function [out] = twox(x)
    out = 2.^x;
end

注意使用点乘,以便可以用向量(甚至矩阵)调用。可以用x = 1:8进行测试。
- Solution 2.4 :可以使用一个函数或两个代码来完成计算:

% 一个函数
function [out1,out2] = func(x,y)
    out1 = x.^2 - y.^2;
    out2 = sin(x+y);
end

% 两个代码
function [out] = func1(x,y)
    out = x.^2 - y.^2;
end

function [out] = func2(x,y)
    out = sin(x+y);
end

若要将范围扩展到[0, 2π],需要将第一行改为x = 0:pi/10:2 pi。
-
Solution 2.5 *:修改后的代码为:

function [out1,out2,out3] = xfuncs(x)
    out1 = sin(x);
    out2 = cos(x);
    out3 = out1.^2 + out2.^2;
end

这里使用out1和out2来设置out3的值,实际上out3始终为1。
- Solution 2.6 :此代码接收两个输入并返回两个输出:

function [outx,outy] = mapcode(inx,iny)
    outx = mod(inx+iny,1);
    outy = mod(inx+2*iny,1);
end
  • Solution 2.7 :需要将第二行修改为y = x.^3+3*x,将第一行修改为x = -4:1/4:6。最好使用clear all清除变量。
  • Solution 2.8 :此方程是关于x²的二次方程,其根为:
    [x^2 = \frac{-1 \pm \sqrt{1 - 4a}}{2}]
    为了有实根,需要1 - 4a ≥ 0,即a ≤ 1/4,且x²必须为正,即(\sqrt{1 - 4a} > 1),所以a ≤ 0。
  • Solution 2.9 :使用步长为1/10来获得相对平滑的函数,代码如下:
x = -1:0.1:1;
f = x+3;
g = x.^2+1;
fg = f.*g;
f_over_g = f./g;
clf;
plot(x,[f; g; fg; f_over_g]);
legend('f','g','f*g','f/g',0);

添加了图例,使用参数0让MATLAB将图例放在最佳位置。
- Solution 2.10 :对以下代码进行改进:
- 第一个代码

x = 4;
y = x+2;
z = 1/(y^2*pi);

原代码第一行末尾添加分号抑制输出;第二行不能将x + 2赋值给y,应将y赋值为x + 2;第三行π的变量为小写p,缺少乘号和分母括号。
- 第二个代码

N = input('Enter N ');
sum = 0;
for j = 1:N
    sum = sum + 1/j+ 1/((j+2)*(j+3));
end
disp(['The answer is ' num2str(sum)]);

原代码第一行缺少单引号和分号;for循环中变量n应改为N,循环变量i和内部使用的j不一致;分数分母缺少括号;显示行缺少方括号,答案需要转换为字符串,且sum未在循环外初始化为0。
- 第三个代码

x = 0.0:0.1:1.0;
f = x.*cos(x)./((x.^2+1).*(x+2));

原代码第一行使用两个等号错误,应使用一个等号;第二行分子缺少乘号和括号,分母括号不平衡,使用了方括号应改为圆括号,除法后有多余乘号,操作向量时运算符应加点。
- 第四个代码

w = ones(1,9);
w(1) = 1;
for j = 1:4
    w(2*j) = 3;
    w(2*j+1) = 2*j+1;
end

原代码第一行得到的是9×9矩阵,应改为行向量;for循环缺少乘号和end语句,行末冒号应改为分号。
- Solution 2.11
- (a) 将英里每小时转换为千米每小时

s = 'Enter speed in mph ';
sp_mph = input(s);
sp_yards_ph = sp_mph*1760;
sp_inch_ph = sp_yards_ph*36;
sp_cm_ph = sp_inch_ph*2.54;
sp_m_ph = sp_cm_ph/100;
sp_km_ph = sp_m_ph/1000;
disp(['Speed in km/h is ' num2str(sp_km_ph) ]);
- **(b) 将米每秒转换为英里每小时**:
s = 'Enter speed in m/s ';
sp_mps = input(s);
sp_cmps = sp_mps*100;
sp_inch_ps = sp_cmps/2.54;
sp_yard_ps = sp_inch_ps/36;
sp_miles_ps = sp_yard_ps/1760;
sp_mph = sp_miles_ps *3600;
disp(['Speed in mph is ' num2str(sp_mph)]);
- **(c) 将上述转换写成函数**:
function [output] = change(input);
    sp_mph = input;
    sp_yards_ph = sp_mph*1760;
    sp_inch_ph = sp_yards_ph*36;
    sp_cm_ph = sp_inch_ph*2.54;
    sp_m_ph = sp_cm_ph/100;
    sp_km_ph = sp_m_ph/1000;
    output = sp_km_ph;
end
- **(d) 短跑运动员10秒跑100米,平均速度为22英里每小时**。
  • Solution 2.12 :使用以下代码:
x = linspace(-pi/2,pi/2);
f = x./(1+x.^2);
g = tan(x);
fg = g./(1+g.^2);
gf = f./(1+f.^2);
plot(x,fg,x,gf);
  • Solution 2.13 :代码如下:
a = input('Coefficient of x squared: ');
b = input('Coefficient of x: ');
c = input('The constant: ');
y = linspace(0,pi);
x = sin(y);
q = a*x.^2+b*x+c;
plot(y,q);
3. 第3章任务解决方案
  • Solution 3.1 :所需代码为:
s = 0;
for i = 1:100
    s = s+1/i^2;
end
disp(['Required value is ' num2str(s)]);

将int2str改为num2str,因为答案不是整数。
- Solution 3.2 :只需将for循环行修改为for i = 1:2:100,得到以2递增的向量。
- Solution 3.3 :将f.m代码修改为:

function [value] = f(i)
    value = sin(i*pi/2)/(i^2+1);
end

然后使用相同的代码。
- Solution 3.4 :使用以下代码:

x = 0:pi/4:pi;
f = x.^2+1;
  • Solution 3.5 :代码修改为:
v = 0:0.25:0.75;
cosx = zeros(size(v));
N = 10; range = 0:N;
ints = 2*range;
for n = range
    cosx = cosx + (-1)^n*v.^ints(n)/factorial(ints(n));
end

此代码给出的答案非常准确,MATLAB计算的余弦值和级数答案的差值小于eps。
- Solution 3.6 :可以使用以下简单代码:

s(1) = 1;
for n = 1:2000
    s(n+1) = s(n)+1/(n+1)^2;
end

此值除以π²可发现c约为6,实际上(\sum_{i = 1}^{\infty} \frac{1}{n^2} = \frac{\pi^2}{6})。
- Solution 3.7 :使用嵌套循环结构解决此任务:

for p = 1:4
    sum = 0;
    for j = 1:(p+1)
        sum = sum + j^p;
    end
    disp([' sum for p=' int2str(p) ' is ' int2str(sum)]);
end
  • Solution 3.8 :此任务的代码为:
sumln(1) = -1;
for n = 1:1000
    sumln(n+1) = sumln(n)+(-1)^(n+1)/(n+1);
end
sum2(1) = 1/2;
for n = 1:1000
    sum2(n+1) = sum2(n)+1/((n+1)*(n+2));
end
  • Solution 3.9 :最简单的方法是x > 2 & x < 4,也可以使用~xor(x >= 2, x <= 4);第二个例子可以使用xor(x > 3, x < -1)或x > 3 | x < -1。
  • Solution 3.10 :mod(n, 2) == 0表示n为偶数,要确保n > 20时才成立,需要mod(n, 2) == 0 & n > 20。
  • Solution 3.11 :计算tan(73π/4),由于tan函数的周期性,其值等于tan(π/4) = 1,所以第一个条件为真,x设为2,floor(x)等于x,x设为10,不是质数,返回字符串“False”。可以尝试初始值x = 3。
  • Solution 3.12 :使用以下代码:
start = 1/7;
next = mod(5*start,1);
while floor(next*7) ~= floor(start*7)
    next = mod(5*next,1);
end

使用复杂结构处理MATLAB的舍入误差。
- Solution 3.13 :代码如下:

n = 1:50;
f = n.^3-n.^2+40;
ii = find(f > 1000 & mod(n,3) ~= 0);
n(ii);
  • Solution 3.14 :关键是从字符串“abcdefghij”开始,代码如下:
str = 'abcdefghij';
msg = 'Enter an integer from 1 to 10: ';
n = input(msg);
while (round(n)~=n) | (n<1 | n>10)
    warning(' Not valid ');
    n = input(msg);
end
str(1:n);
  • Solution 3.15 :使用两个函数来解决:
function [val] = isletter(charac)
    lchar = lower(charac(1));
    if lchar>='a' & lchar <='z'
        val = 1;
    else
        val = 0;
    end
end

function [val] = isdigit(charac)
    lchar = charac(1);
    if lchar>='0' & lchar <='9'
        val = 1;
    else
        val = 0;
    end
end

msg = 'Please enter a letter and a digit ';
str = input(msg,'s');
while ~isletter(str(1)) | ~isdigit(str(2))
    warning('This is not valid');
    str = input(msg,'s');
end
  • Solution 3.16 :使用以下代码:
x = linspace(-3,5,100);
for i = 1:length(x)
    if x(i) >= -1 & x(i) <= 1
        f(i) = x(i)^2;
    elseif x(i) > 1 & x(i) < 4
        f(i) = 1;
    else
        f(i) = 0;
    end
end
plot(x,f);
axis([-3 5 -0.5 1.5]);

最后一个命令用于区分曲线和坐标轴。
- Solution 3.17 :使用以下代码:

x = -3:0.1:3;
g = cos(pi*x);
izero = find(abs(g)<=1e-15);
ii = find(abs(g)>=1e-15);
f(izero) = NaN;
f(ii) = 1./g(ii);
plot(x,f);

选择10⁻¹⁵是为了接近奇点。
- Solution 3.18 :修正后的代码为:

x = linspace(-4,4);
N = length(x);
for j = 1:N
    if x(j) >= 0 & x(j) <= 1
        f(j) = x(j);
    elseif x(j) >= 1 & x(j) < 2
        f(j) = 2 - x(j);
    else
        f(j) = 0;
    end
end

原代码第一行拼写错误,应为linspace;第二行缺少括号和分号;for循环使用分号错误,应使用冒号;if和elseif语句中第二个引用x数组使用i错误,应使用j;逻辑表达式应使用&和|;变量zero未定义;缺少end语句。

4. 第4章任务解决方案
  • Solution 4.1 :函数f(x) = g(x)h(x)的零点出现在g(x)和h(x)的零点处,前提是两个函数都不是奇异的。在这种情况下,g(x) = x在x = 0处为零,h(x) = sin x在0, π, 2π和3π(在[0, 10]范围内)处为零。
  • Solution 4.2 :cosh x = (eˣ + e⁻ˣ)/2,要使cosh x为零,需要eˣ = -e⁻ˣ,即e²ˣ = -1,但eˣ > 0对于所有x都成立,所以cosh x永远不为零。sinh x = (eˣ - e⁻ˣ)/2,要使sinh x为零,需要e²ˣ = 1,即x = 0,这是sinh x的唯一孤立零点。函数f(x)的零点出现在coshm x和sinhn x的零点处,仅在x = 0处(此时为n重零点)。
  • Solution 4.3 :考虑方程的判别式b² - 4。对于两个实根,b² > 4,即|b| > 2;对于一个实根,判别式为零,即b = 2;对于复根,判别式为负,即|b| < 2。可以使用以下代码进行图形验证:
b = input('Value of b ');
x = -10:0.1:10;
f = x.^2+b*x+1;
plot(x,f);
  • Solution 4.4 :将方程写成(\frac{\cos\theta\sin x + \sin\theta\cos x}{\cos\theta})的形式,其中(\tan\theta = \beta),则(\sin\theta = \frac{\beta}{\sqrt{1 + \beta^2}}),(\cos\theta = \frac{1}{\sqrt{1 + \beta^2}})。函数f(x)可以写成(f(x) = \frac{\sin(\theta + x)}{\cos\theta}),其零点为(\sin(\theta + x) = 0),即x = nπ - θ,其中(\theta = \sin^{-1}(\frac{\beta}{\sqrt{1 + \beta^2}}))。如果β = 0,则θ = 0;如果β = 1,则θ = π/4。
  • Solution 4.5 :方程f(x) = 0可以改写为x = cos⁻¹(sin x/2),固定点迭代方案为xₙ₊₁ = cos⁻¹(sin xₙ/2),相应代码为:
function g = eqn(x)
    g = acos(sin(x)/2);
end

函数的根为nπ + θ,其中(\theta = \sin^{-1}(\frac{2}{\sqrt{5}}))。
- Solution 4.6 :方程的根为(x_b = \frac{-b \pm \sqrt{b^2 - 4}}{2})。考虑选项g(x) = -(x² + 1)/b,其导数(g’(x) = -\frac{2x}{b}),在根处(g’(x_b) = 1 \mp \sqrt{1 - \frac{4}{b^2}})。当|b| > 2时,负号对应的根的导数绝对值大于1,正号对应的根的导数绝对值小于1。对于另一个选项,情况相反。可以使用以下代码:

function g = eqn(x)
    b = 3;
    g = -(x^2+1)/b;
end

或使用替代的最后一行g = -sqrt(-(b x+1)),从初始猜测-1开始,根据不同的固定点方案得到不同的根。
-
Solution 4.7 *:将func.m文件改为:

function [f] = func(x)
    f = 2*x.^2-x.^3+sin(x);
end

使用该例程生成绘图,使用2和3作为范围的端点,得到根为2.1741,迭代14次,容差为1×10⁻⁴。
- Solution 4.8 :函数f(x) = cos 3x在0到π范围内有三个零点。使用整个范围,会遇到左根π/6。对于其他两个范围,可以选择下根或上根。该方案对于奇数个根仍然有效。
- Solution 4.9 :设置以下例程:

function [f] = func(x)
    f = x.*cos(x)-sin(x);
end

function [fp] = func_prime(x)
    fp = -x.*sin(x);
end

function [f] = func(x)
    f = (x.^3-x).*sin(x);
end

function [fp] = func_prime(x)
    fp = (3*x.^2-1).*sin(x) + (x.^3-x).*cos(x);
end

第一个函数的根在x = 0和x ≈ ±4.41,以及随着x增加趋近于cos x零点的许多其他根。第二个函数的零点在x = 0和1,以及nπ(n ∈ Z)处。
- Solution 4.10 :函数的零点出现在x - x³ = nπ处。可以先绘制函数图像来获得初始估计,然后使用False Position.m代码:

>> False_Position
Starting guess point 1 :0.8
Starting guess point 2 :1.2
Root = 0. .=. (root output)
Root = 0.9999999982
>> False_Position
Root = 0.999999982 found in 12 iterations.
>> False_Position
Starting guess point 1 :1.6
Starting guess point 2 :1.8
Root = 1.690631797 found in 4 iterations.

第一个根对应n = 0。函数随着x增加变得非常振荡,需要更多根时可能会有问题,可以使用roots函数求解三次方程x - x³ = nπ的根。
- Solution 4.11 :使用以下代码:

function [f,fp,fpp] = fun2(x);
    f = x.^3-4*x.^2+5*x+2;
    fp = 3*x.^2-8*x+5;
    fpp = 6*x.^2-8;
end

根在1(二重根)和2处。
- Solution 4.12 :可以使用内联代码roots([1 1 1 1])和roots([1 0 0 1 -2 -4])计算根。
- Solution 4.13 :使用以下代码:

function [f]=func1(x)
    f = x.*sin(x)+cos(x);
end

然后使用fzero(‘ff’, 3)得到根约为2.7984。对于其他情况,根为sin x = 0或sin x = ±1,即x = nπ/2(n ∈ Z),此时fzero会误将函数变号当作根。
- Solution 4.14 :函数J₁/₂(x)实际上是(\frac{\sin x}{\sqrt{x}}),其根为nπ。使用fzero的代码为:

function [f] = ourbess(x)
    f = besselj(1/2,x);
end

然后使用fzero(‘ourbess’, 3)。
- Solution 4.15 :要找到函数f(x) = x sin x - x² cos x - 1的零点,其导数f’(x) = (1 + x²) sin x - x cos x。正确的定义为:

function [out] = f(in)
    out = in.*sin(in)-in.^2.*cos(in)-1;
end

function [out] = fp(in)
    out = (1+in.^2).*sin(in)-in.*cos(in);
end

x = 0;
for j = 1:10
    x = x - f(x)/fp(x);
end

原问题中表达式的第二项写反了,此代码可以写得更简洁。

通过以上详细的解决方案,可以更好地理解和解决各种MATLAB任务。在实际应用中,根据具体问题选择合适的方法和代码,同时注意代码的正确性和效率。希望这些内容对大家在MATLAB编程中有所帮助。

3. 各章节任务解决方案总结

为了更清晰地展示各章节任务的主要内容和关键代码,我们将以表格形式进行总结。

章节 任务 主要内容 关键代码
第1章 Solution 1.1 - 1.11 涵盖数学计算、向量操作、函数求值、绘图等基础操作 x = 1.3; p = x^2+3*x+1;
第2章 Solution 2.1 - 2.13 包括代码输入输出、函数定义、速度单位转换、绘图等 function [out] = twox(x); out = 2.^x;
第3章 Solution 3.1 - 3.18 涉及循环求和、条件判断、逻辑运算、误差处理等 s = 0; for i = 1:100; s = s+1/i^2; end;
第4章 Solution 4.1 - 4.15 主要是函数零点求解、方程根的分析等 function [f] = func(x); f = 2*x.^2-x.^3+sin(x);

4. 常见错误及解决方法

在编写MATLAB代码时,常常会遇到一些错误。以下是一些常见错误及相应的解决方法。

4.1 语法错误
  • 错误描述 :如变量名大小写错误、括号缺失、运算符使用错误等。
  • 解决方法 :仔细检查代码,注意变量名的大小写一致性,确保括号、运算符等使用正确。例如,在计算 y = cos(x*pi) 时,要保证 pi 为小写,且 x pi 之间有乘号。
4.2 逻辑错误
  • 错误描述 :代码逻辑不符合预期,如循环条件错误、判断条件错误等。
  • 解决方法 :分析代码逻辑,使用调试工具或添加输出语句,逐步检查代码执行过程。例如,在 for 循环中,要确保循环变量的范围和步长设置正确。
4.3 数据类型错误
  • 错误描述 :使用不匹配的数据类型进行操作,如将字符串与数值直接运算等。
  • 解决方法 :使用合适的函数进行数据类型转换,如 num2str 将数值转换为字符串。例如,在输出结果时,使用 disp([str1 num2str(res) str2 ... num2str(a) str3 num2str(b)])

5. 实际应用案例

下面通过几个实际应用案例,展示如何运用上述知识解决实际问题。

5.1 物理问题:速度单位转换

在物理实验中,我们可能需要将速度从英里每小时转换为千米每小时。可以使用以下代码:

s = 'Enter speed in mph ';
sp_mph = input(s);
sp_yards_ph = sp_mph*1760;
sp_inch_ph = sp_yards_ph*36;
sp_cm_ph = sp_inch_ph*2.54;
sp_m_ph = sp_cm_ph/100;
sp_km_ph = sp_m_ph/1000;
disp(['Speed in km/h is ' num2str(sp_km_ph) ]);

操作步骤:
1. 运行代码,输入英里每小时的速度值。
2. 代码将自动进行单位转换,并输出千米每小时的速度值。

5.2 数学问题:函数零点求解

在数学建模中,我们可能需要求解函数的零点。例如,求解函数 f(x) = 2*x.^2-x.^3+sin(x) 的零点。可以使用以下代码:

function [f] = func(x)
    f = 2*x.^2-x.^3+sin(x);
end

操作步骤:
1. 定义函数 func.m
2. 使用合适的零点求解方法,如二分法、牛顿法等,结合定义的函数进行求解。

6. 总结与展望

通过对各章节任务解决方案的详细介绍,我们可以看到MATLAB在数学计算、函数处理、绘图等方面具有强大的功能。在实际应用中,我们可以根据具体问题选择合适的方法和代码,同时要注意代码的正确性和效率。

未来,随着科学技术的不断发展,MATLAB的应用场景将更加广泛。我们可以进一步探索MATLAB在机器学习、数据分析、图像处理等领域的应用,不断提升自己的编程能力和解决实际问题的能力。

7. 流程图示例

以下是一个简单的MATLAB代码执行流程图,展示了代码输入、处理和输出的基本过程。

graph TD;
    A[输入代码] --> B[语法检查];
    B -- 无错误 --> C[代码执行];
    B -- 有错误 --> D[错误处理];
    D --> A;
    C --> E[结果输出];

这个流程图清晰地展示了MATLAB代码执行的基本流程,从输入代码开始,经过语法检查,若有错误则进行错误处理,无错误则执行代码并输出结果。通过这个流程图,我们可以更好地理解代码执行过程,有助于我们在编写代码时及时发现和解决问题。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值