Python进行线性规划求解

光明市的菜篮子工程

光明市是一个人口不到20万人的小城市。根据该市的蔬菜种植情况,分别在花市(A)、城乡路(B)和下塘街(C) 设三个蔬菜收购点。清晨5点前菜农将 蔬菜送至各收购点,再由各收购点分送 到全市8个菜市场。该市道路情况、各路段距离(单位:100 m)及各收购点和菜市场①,…,⑧的具体位置见图C-6。 按常年数据,A、B、C三个收购点每天收购量分别为200、170和160(单位:100 kg)。各菜市场的每天需求量及发生供应短缺时及带来的损失(元/100 kg)参见 表C-13。设从收购点至各菜市场蔬菜 调运费为1元/(100 kg • 100 m)。

在这里插入图片描述

表C-13

菜市场需求/100kg短缺损失/(元/100kg)
7510
608
355
7010
10010
408
905
808

要求:

(1) 为该市设计一个从各收购点至各菜市场的定点供应方案,使用于蔬菜调运加上预期短缺损失总和为最小。

(2) 若规定各菜市场短缺量一律不得超过需求量的20%,请重新设计定点供应方案。

(3) 为满足城市居民的蔬菜供应,光明市规划增加蔬菜种植面积。试问:增产的蔬菜每天应分别向A、B、C三个收购点各供应多少最经济合理?

`

第一问

from pulp import *

import pulp as p
import numpy as np
 

prob = LpProblem('目标函数和约束', sense=LpMinimize)


#初始化变量, lowBound最小值   upBound 最大值  变量类型,可以为LpInteger\LpBinary\LpContinuous三者之一(整型、二进制或连续)
# a1,a2...a8 代表 A收购点对8个菜市场分配的蔬菜量, b1...b8 , c1....c8代表 B,C 收购点对8个菜市场分配的蔬菜量
a1 = LpVariable('a1', lowBound=0, upBound=75, cat='Continuous')
a2 = LpVariable('a2', lowBound=0, upBound=60, cat='Continuous')
a3 = LpVariable('a3', lowBound=0, upBound=35, cat='Continuous')
a4 = LpVariable('a4', lowBound=0, upBound=70, cat='Continuous')
a5 = LpVariable('a5', lowBound=0, upBound=100, cat='Continuous')
a6 = LpVariable('a6', lowBound=0, upBound=40, cat='Continuous')
a7 = LpVariable('a7', lowBound=0, upBound=90, cat='Continuous')
a8 = LpVariable('a8', lowBound=0, upBound=80, cat='Continuous')

b1 = LpVariable('b1', lowBound=0, upBound=75,  cat='Continuous')
b2 = LpVariable('b2', lowBound=0, upBound=60,  cat='Continuous')
b3 = LpVariable('b3', lowBound=0, upBound=35,  cat='Continuous')
b4 = LpVariable('b4', lowBound=0, upBound=70,  cat='Continuous')
b5 = LpVariable('b5', lowBound=0, upBound=100, cat='Continuous')
b6 = LpVariable('b6', lowBound=0, upBound=40,  cat='Continuous')
b7 = LpVariable('b7', lowBound=0, upBound=90,  cat='Continuous')
b8 = LpVariable('b8', lowBound=0, upBound=80,  cat='Continuous')

c1 = LpVariable('c1', lowBound=0, upBound=75,  cat='Continuous')
c2 = LpVariable('c2', lowBound=0, upBound=60,  cat='Continuous')
c3 = LpVariable('c3', lowBound=0, upBound=35,  cat='Continuous')
c4 = LpVariable('c4', lowBound=0, upBound=70,  cat='Continuous')
c5 = LpVariable('c5', lowBound=0, upBound=100, cat='Continuous')
c6 = LpVariable('c6', lowBound=0, upBound=40,  cat='Continuous')
c7 = LpVariable('c7', lowBound=0, upBound=90,  cat='Continuous')
c8 = LpVariable('c8', lowBound=0, upBound=80,  cat='Continuous')


# A = np.array([a1,a2,a3,a4,a5,a6,a7,a8])
# A站点送到八个菜市场的最小运费
# COSTA =np.array([34,8,8,19,11,6,22,20])

# print(A*COSTA)

# B = np.array([b1,b2,b3,b4,b5,b6,b7,b8])
# B站点送到八个菜市场的最小运费
# COSTB =np.array([14,7,7,16,12,16,23,17])
# print(B*COSTB)

# C = np.array([c1,c2,c3,c4,c5,c6,c7,c8])
# C站点送到八个菜市场的最小运费
# COSTC =np.array([20,19,11,14,6,15,5,10])
# print(C*COSTC)



# 设置目标函数

#蔬菜调运加上预期短缺损失总和为最小

prob += 34*a1 + 14*b1 + 20*c1 +  8*a2 + 7*b2 + 19*c2 +  8*a3 + 7*b3 + 11*c3 + \
 19*a4 + 16*b4 + 14*c4 + 11*a5 + 12*b5 + 6*c5 + 6*a6 + 16*b6 + 15*c6 +  22*a7 + 23*b7 + 5*c7 + 20*a8 + 17*b8 + 10*c8 + \
(75-a1-b1-c1)*10 + (60-a2-b2-c2)*8 + (35-a3-b3-c3)*5 + (70-a4-b4-c4)*10 + (100-a5-a5-a5)*10 + (40- a6-b6-c6)*8 + \
(90-a7-b7-c7)*5 + (80-a8-b8-c8)*8



# 约束条件
# 八个菜市场的需求量
prob += a1+b1+c1<= 75
prob += a2+b2+c2<=60
prob += a3+b3+c3<=35
prob += a4+b4+c4<=70
prob += a5+b5+c5<=100
prob += a6+b6+c6<=40
prob += a7+b7+c7<=90
prob += a8+b8+c8<=80

#三个站点总的蔬菜量
prob += a1+ a2 +a3 +a4 +a5 + a6 +a7 + a8 <=200
prob += b1+ b2 +b3 +b4 +b5 + b6 +b7 + b8 <=170
prob += c1+ c2 +c3 +c4 +c5 + c6 +c7 + c8 <=160


print(prob)
status = prob.solve(use_mps=True)
print(f"目标函数的最小值z={value(prob.objective)},此时目标函数的决策变量为:",
      {v.name: v.varValue for v in prob.variables()})

`

输出结果:

目标函数和约束:
MINIMIZE
24*a1 + 0*a2 + 3*a3 + 9*a4 + -19*a5 + -2*a6 + 17*a7 + 12*a8 + 4*b1 + -1*b2 + 2*b3 + 6*b4 + 12*b5 + 8*b6 + 18*b7 + 9*b8 + 10*c1 + 11*c2 + 6*c3 + 4*c4 + 6*c5 + 7*c6 + 0*c7 + 2*c8 + 4515
SUBJECT TO
_C1: a1 + b1 + c1 <= 75

_C2: a2 + b2 + c2 <= 60

_C3: a3 + b3 + c3 <= 35

_C4: a4 + b4 + c4 <= 70

_C5: a5 + b5 + c5 <= 100

_C6: a6 + b6 + c6 <= 40

_C7: a7 + b7 + c7 <= 90

_C8: a8 + b8 + c8 <= 80

_C9: a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 <= 200

_C10: b1 + b2 + b3 + b4 + b5 + b6 + b7 + b8 <= 170

_C11: c1 + c2 + c3 + c4 + c5 + c6 + c7 + c8 <= 160

VARIABLES
a1 <= 75 Continuous
a2 <= 60 Continuous
a3 <= 35 Continuous
a4 <= 70 Continuous
a5 <= 100 Continuous
a6 <= 40 Continuous
a7 <= 90 Continuous
a8 <= 80 Continuous
b1 <= 75 Continuous
b2 <= 60 Continuous
b3 <= 35 Continuous
b4 <= 70 Continuous
b5 <= 100 Continuous
b6 <= 40 Continuous
b7 <= 90 Continuous
b8 <= 80 Continuous
c1 <= 75 Continuous
c2 <= 60 Continuous
c3 <= 35 Continuous
c4 <= 70 Continuous
c5 <= 100 Continuous
c6 <= 40 Continuous
c7 <= 90 Continuous
c8 <= 80 Continuous

目标函数的最小值z=2475.0,此时目标函数的决策变量为: {'a1': 0.0, 'a2': 0.0, 'a3': 0.0, 'a4': 0.0, 'a5': 100.0, 'a6': 40.0, 'a7': 0.0, 'a8': 0.0, 'b1': 0.0, 'b2': 60.0, 'b3': 0.0, 'b4': 0.0, 'b5': 0.0, 'b6': 0.0, 'b7': 0.0, 'b8': 0.0, 'c1': 0.0, 'c2': 0.0, 'c3': 0.0, 'c4': 0.0, 'c5': 0.0, 'c6': 0.0, 'c7': 0.0, 'c8': 0.0}

第二问

from pulp import *

import pulp as p
import numpy as np
 

prob = LpProblem('目标函数和约束', sense=LpMinimize)


#初始化变量, lowBound最小值   upBound 最大值  变量类型,可以为LpInteger\LpBinary\LpContinuous三者之一(整型、二进制或连续)
# a1,a2...a8 代表 A收购点对8个菜市场分配的蔬菜量, b1...b8 , c1....c8代表 B,C 收购点对8个菜市场分配的蔬菜量
a1 = LpVariable('a1', lowBound=0, upBound=75, cat='Continuous')
a2 = LpVariable('a2', lowBound=0, upBound=60, cat='Continuous')
a3 = LpVariable('a3', lowBound=0, upBound=35, cat='Continuous')
a4 = LpVariable('a4', lowBound=0, upBound=70, cat='Continuous')
a5 = LpVariable('a5', lowBound=0, upBound=100, cat='Continuous')
a6 = LpVariable('a6', lowBound=0, upBound=40, cat='Continuous')
a7 = LpVariable('a7', lowBound=0, upBound=90, cat='Continuous')
a8 = LpVariable('a8', lowBound=0, upBound=80, cat='Continuous')

b1 = LpVariable('b1', lowBound=0, upBound=75,  cat='Continuous')
b2 = LpVariable('b2', lowBound=0, upBound=60,  cat='Continuous')
b3 = LpVariable('b3', lowBound=0, upBound=35,  cat='Continuous')
b4 = LpVariable('b4', lowBound=0, upBound=70,  cat='Continuous')
b5 = LpVariable('b5', lowBound=0, upBound=100, cat='Continuous')
b6 = LpVariable('b6', lowBound=0, upBound=40,  cat='Continuous')
b7 = LpVariable('b7', lowBound=0, upBound=90,  cat='Continuous')
b8 = LpVariable('b8', lowBound=0, upBound=80,  cat='Continuous')

c1 = LpVariable('c1', lowBound=0, upBound=75,  cat='Continuous')
c2 = LpVariable('c2', lowBound=0, upBound=60,  cat='Continuous')
c3 = LpVariable('c3', lowBound=0, upBound=35,  cat='Continuous')
c4 = LpVariable('c4', lowBound=0, upBound=70,  cat='Continuous')
c5 = LpVariable('c5', lowBound=0, upBound=100, cat='Continuous')
c6 = LpVariable('c6', lowBound=0, upBound=40,  cat='Continuous')
c7 = LpVariable('c7', lowBound=0, upBound=90,  cat='Continuous')
c8 = LpVariable('c8', lowBound=0, upBound=80,  cat='Continuous')

# 规定各菜市场短缺量一律不得超过需求量的20%
short = LpVariable('short', lowBound=0.2, upBound=0.2,  cat='Continuous')

# 设置目标函数

#蔬菜调运加上预期短缺损失总和为最小

prob += 34*a1 + 14*b1 + 20*c1 +  8*a2 + 7*b2 + 19*c2 +  8*a3 + 7*b3 + 11*c3 + \
 19*a4 + 16*b4 + 14*c4 + 11*a5 + 12*b5 + 6*c5 + 6*a6 + 16*b6 + 15*c6 +  22*a7 + 23*b7 + 5*c7 + 20*a8 + 17*b8 + 10*c8 + \
(75-a1-b1-c1)*10 + (60-a2-b2-c2)*8 + (35-a3-b3-c3)*5 + (70-a4-b4-c4)*10 + (100-a5-a5-a5)*10 + (40- a6-b6-c6)*8 + \
(90-a7-b7-c7)*5 + (80-a8-b8-c8)*8



# 约束条件
# 八个菜市场的需求量
prob += a1+b1+c1<= 75
prob += a2+b2+c2<=60
prob += a3+b3+c3<=35
prob += a4+b4+c4<=70
prob += a5+b5+c5<=100
prob += a6+b6+c6<=40
prob += a7+b7+c7<=90
prob += a8+b8+c8<=80

#三个站点总的蔬菜量
prob += a1+ a2 +a3 +a4 +a5 + a6 +a7 + a8 <=200
prob += b1+ b2 +b3 +b4 +b5 + b6 +b7 + b8 <=170
prob += c1+ c2 +c3 +c4 +c5 + c6 +c7 + c8 <=160

# (2)若规定各菜市场短缺量一律不得超过需求量的20%
prob += (75-a1-b1-c1<= 75*short)
prob += (60-a2-b2-c2<= 60*short)
prob += (35-a3-b3-c3<= 35*short)
prob += (70-a4-b4-c4<= 70*short)
prob += (100-a5-b5-c5<= 100*short)
prob += (40-a6-b6-c6<= 40*short)
prob += (90-a7-b7-c7<= 90*short)
prob += (80-a8-b8-c7<= 80*short)


print(prob)
status = prob.solve(use_mps=True)
print(f"目标函数的最小值z={value(prob.objective)},此时目标函数的决策变量为:",
      {v.name: v.varValue for v in prob.variables()})

print(short)

输出结果

目标函数和约束:
MINIMIZE
24*a1 + 0*a2 + 3*a3 + 9*a4 + -19*a5 + -2*a6 + 17*a7 + 12*a8 + 4*b1 + -1*b2 + 2*b3 + 6*b4 + 12*b5 + 8*b6 + 18*b7 + 9*b8 + 10*c1 + 11*c2 + 6*c3 + 4*c4 + 6*c5 + 7*c6 + 0*c7 + 2*c8 + 4515
SUBJECT TO
_C1: a1 + b1 + c1 <= 75

_C2: a2 + b2 + c2 <= 60

_C3: a3 + b3 + c3 <= 35

_C4: a4 + b4 + c4 <= 70

_C5: a5 + b5 + c5 <= 100

_C6: a6 + b6 + c6 <= 40

_C7: a7 + b7 + c7 <= 90

_C8: a8 + b8 + c8 <= 80

_C9: a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 <= 200

_C10: b1 + b2 + b3 + b4 + b5 + b6 + b7 + b8 <= 170

_C11: c1 + c2 + c3 + c4 + c5 + c6 + c7 + c8 <= 160

_C12: - a1 - b1 - c1 - 75 short <= -75

_C13: - a2 - b2 - c2 - 60 short <= -60

_C14: - a3 - b3 - c3 - 35 short <= -35

_C15: - a4 - b4 - c4 - 70 short <= -70

_C16: - a5 - b5 - c5 - 100 short <= -100

_C17: - a6 - b6 - c6 - 40 short <= -40

_C18: - a7 - b7 - c7 - 90 short <= -90

_C19: - a8 - b8 - c7 - 80 short <= -80

VARIABLES
a1 <= 75 Continuous
a2 <= 60 Continuous
a3 <= 35 Continuous
a4 <= 70 Continuous
a5 <= 100 Continuous
a6 <= 40 Continuous
a7 <= 90 Continuous
a8 <= 80 Continuous
b1 <= 75 Continuous
b2 <= 60 Continuous
b3 <= 35 Continuous
b4 <= 70 Continuous
b5 <= 100 Continuous
b6 <= 40 Continuous
b7 <= 90 Continuous
b8 <= 80 Continuous
c1 <= 75 Continuous
c2 <= 60 Continuous
c3 <= 35 Continuous
c4 <= 70 Continuous
c5 <= 100 Continuous
c6 <= 40 Continuous
c7 <= 90 Continuous
c8 <= 80 Continuous
short = 0.2 Continuous

目标函数的最小值z=2995.0,此时目标函数的决策变量为: {'a1': 0.0, 'a2': 0.0, 'a3': 0.0, 'a4': 0.0, 'a5': 100.0, 'a6': 40.0, 'a7': 0.0, 'a8': 0.0, 'b1': 60.0, 'b2': 60.0, 'b3': 28.0, 'b4': 0.0, 'b5': 0.0, 'b6': 0.0, 'b7': 0.0, 'b8': 0.0, 'c1': 0.0, 'c2': 0.0, 'c3': 0.0, 'c4': 56.0, 'c5': 0.0, 'c6': 0.0, 'c7': 72.0, 'c8': 0.0, 'short': 0.2}
short

第三问

from pulp import *

import pulp as p
import numpy as np
 

prob = LpProblem('目标函数和约束', sense=LpMinimize)



a1 = LpVariable('a1', lowBound=0, upBound=75, cat='Integer')
a2 = LpVariable('a2', lowBound=0, upBound=60, cat='Integer')
a3 = LpVariable('a3', lowBound=0, upBound=35, cat='Integer')
a4 = LpVariable('a4', lowBound=0, upBound=70, cat='Integer')
a5 = LpVariable('a5', lowBound=0, upBound=100, cat='Integer')
a6 = LpVariable('a6', lowBound=0, upBound=40, cat='Integer')
a7 = LpVariable('a7', lowBound=0, upBound=90, cat='Integer')
a8 = LpVariable('a8', lowBound=0, upBound=80, cat='Integer')

b1 = LpVariable('b1', lowBound=0, upBound=75,  cat='Integer')
b2 = LpVariable('b2', lowBound=0, upBound=60,  cat='Integer')
b3 = LpVariable('b3', lowBound=0, upBound=35,  cat='Integer')
b4 = LpVariable('b4', lowBound=0, upBound=70,  cat='Integer')
b5 = LpVariable('b5', lowBound=0, upBound=100, cat='Integer')
b6 = LpVariable('b6', lowBound=0, upBound=40,  cat='Integer')
b7 = LpVariable('b7', lowBound=0, upBound=90,  cat='Integer')
b8 = LpVariable('b8', lowBound=0, upBound=80,  cat='Integer')

c1 = LpVariable('c1', lowBound=0, upBound=75,  cat='Integer')
c2 = LpVariable('c2', lowBound=0, upBound=60,  cat='Integer')
c3 = LpVariable('c3', lowBound=0, upBound=35,  cat='Integer')
c4 = LpVariable('c4', lowBound=0, upBound=70,  cat='Integer')
c5 = LpVariable('c5', lowBound=0, upBound=100, cat='Integer')
c6 = LpVariable('c6', lowBound=0, upBound=40,  cat='Integer')
c7 = LpVariable('c7', lowBound=0, upBound=90,  cat='Integer')
c8 = LpVariable('c8', lowBound=0, upBound=80,  cat='Integer')


short = LpVariable('short', lowBound=0.2, upBound=0.2,  cat='Continuous')


# A = np.array([a1,a2,a3,a4,a5,a6,a7,a8])
# COSTA =np.array([34,8,8,19,11,6,22,20])

# print(A*COSTA)

# B = np.array([b1,b2,b3,b4,b5,b6,b7,b8])
# COSTB =np.array([14,7,7,16,12,16,23,17])
# print(B*COSTB)

# C = np.array([c1,c2,c3,c4,c5,c6,c7,c8])
# COSTC =np.array([20,19,11,14,6,15,5,10])
# print(C*COSTC)


# print(A*COSTA+B*COSTB+C*COSTC)

# 设置目标函数
#prob += A*COSTA+B*COSTB+C*COSTC

prob += 34*a1 + 14*b1 + 20*c1 +  8*a2 + 7*b2 + 19*c2 +  8*a3 + 7*b3 + 11*c3 + \
 19*a4 + 16*b4 + 14*c4 + 11*a5 + 12*b5 + 6*c5 + 6*a6 + 16*b6 + 15*c6 +  22*a7 + 23*b7 + 5*c7 + 20*a8 + 17*b8 + 10*c8 + \
(75-a1-b1-c1)*10 + (60-a2-b2-c2)*8 + (35-a3-b3-c3)*5 + (70-a4-b4-c4)*10 + (100-a5-a5-a5)*10 + (40- a6-b6-c6)*8 + \
(90-a7-b7-c7)*5 + (80-a8-b8-c8)*8



# 约束条件
prob += a1+b1+c1<= 75
prob += a2+b2+c2<=60
prob += a3+b3+c3<=35
prob += a4+b4+c4<=70
prob += a5+b5+c5<=100
prob += a6+b6+c6<=40
prob += a7+b7+c7<=90
prob += a8+b8+c8<=80

prob += ( (a1+ a2 +a3 +a4 +a5 + a6 +a7 + a8) >= 200)
prob += ( (b1+ b2 +b3 +b4 +b5 + b6 +b7 + b8) >= 170)
prob += ( (c1+ c2 +c3 +c4 +c5 + c6 +c7 + c8) >= 160)


print(prob)

status = prob.solve(use_mps=True)
print(f"目标函数的最小值z={value(prob.objective)},此时目标函数的决策变量为:",
      {v.name: v.varValue for v in prob.variables()})

print(short)

输出结果


目标函数和约束:
MINIMIZE
24*a1 + 0*a2 + 3*a3 + 9*a4 + -19*a5 + -2*a6 + 17*a7 + 12*a8 + 4*b1 + -1*b2 + 2*b3 + 6*b4 + 12*b5 + 8*b6 + 18*b7 + 9*b8 + 10*c1 + 11*c2 + 6*c3 + 4*c4 + 6*c5 + 7*c6 + 0*c7 + 2*c8 + 4515
SUBJECT TO
_C1: a1 + b1 + c1 <= 75

_C2: a2 + b2 + c2 <= 60

_C3: a3 + b3 + c3 <= 35

_C4: a4 + b4 + c4 <= 70

_C5: a5 + b5 + c5 <= 100

_C6: a6 + b6 + c6 <= 40

_C7: a7 + b7 + c7 <= 90

_C8: a8 + b8 + c8 <= 80

_C9: a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 >= 200

_C10: b1 + b2 + b3 + b4 + b5 + b6 + b7 + b8 >= 170

_C11: c1 + c2 + c3 + c4 + c5 + c6 + c7 + c8 >= 160

VARIABLES
0 <= a1 <= 75 Integer
0 <= a2 <= 60 Integer
0 <= a3 <= 35 Integer
0 <= a4 <= 70 Integer
0 <= a5 <= 100 Integer
0 <= a6 <= 40 Integer
0 <= a7 <= 90 Integer
0 <= a8 <= 80 Integer
0 <= b1 <= 75 Integer
0 <= b2 <= 60 Integer
0 <= b3 <= 35 Integer
0 <= b4 <= 70 Integer
0 <= b5 <= 100 Integer
0 <= b6 <= 40 Integer
0 <= b7 <= 90 Integer
0 <= b8 <= 80 Integer
0 <= c1 <= 75 Integer
0 <= c2 <= 60 Integer
0 <= c3 <= 35 Integer
0 <= c4 <= 70 Integer
0 <= c5 <= 100 Integer
0 <= c6 <= 40 Integer
0 <= c7 <= 90 Integer
0 <= c8 <= 80 Integer

目标函数的最小值z=3405.0,此时目标函数的决策变量为: {'a1': 0.0, 'a2': 60.0, 'a3': 0.0, 'a4': 0.0, 'a5': 100.0, 'a6': 40.0, 'a7': 0.0, 'a8': 0.0, 'b1': 75.0, 'b2': 0.0, 'b3': 35.0, 'b4': 60.0, 'b5': 0.0, 'b6': 0.0, 'b7': 0.0, 'b8': 0.0, 'c1': 0.0, 'c2': 0.0, 'c3': 0.0, 'c4': 0.0, 'c5': 0.0, 'c6': 0.0, 'c7': 90.0, 'c8': 70.0}

备注:

可以看出,菜市场短缺损失金额较小,导致A,B,C站点运输的蔬菜越多,损失越大,明显与实际情况不符。该题目的参数设置有问题,但是对于解决线性规划问题仍有借鉴意义。

参考:

https://blog.csdn.net/as604049322/article/details/120359951

https://blog.csdn.net/youcans/article/details/116371416

https://blog.csdn.net/liqian_ken/article/details/119605243

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九城风雪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值