编写程序,计算铁路运费。已知从甲地到乙地,每张火车票托运行李不超过50kg时,按0.25元/ kg收取行李托运费;行李若超过50kg,则超过部分按0.35元/ kg计算托运费。输入行李重量w,计算行李托运费y。用Python设计
时间: 2023-05-18 22:04:11 浏览: 354
以下是 Python 代码:
```
w = float(input("请输入行李重量(kg):"))
if w <= 50:
y = w * 0.25
else:
y = 50 * 0.25 + (w - 50) * 0.35
print("行李托运费为:", y, "元")
```
这个程序可以计算铁路运费,根据输入的行李重量,计算出行李托运费。如果行李重量不超过50kg,则按照0.25元/ kg的价格计算;如果行李重量超过50kg,则前50kg按照0.25元/ kg计算,超过部分按照0.35元/ kg计算。
相关问题
有10件货物要从甲地运送到乙地,每件货物的重量和利润如下表所示。 由于只有一辆最大载重为30t的货车能用来运送货物,所以只能选择部分货物进行运送.问题:要求确定运送哪些货物,使得运送这些货物的总利润最大。
这是一个经典的背包问题,可以使用动态规划的方法求解。具体步骤如下:
1. 定义状态:设dp[i][j]表示前i件物品放入容量为j的背包中所能获得的最大利润。
2. 状态转移方程:对于第i件物品,有两种选择:放入背包或不放入背包。如果选择放入背包,则dp[i][j] = dp[i-1][j-w[i]] + v[i],其中w[i]表示第i件物品的重量,v[i]表示第i件物品的利润;如果选择不放入背包,则dp[i][j] = dp[i-1][j]。综上,状态转移方程为:dp[i][j] = max(dp[i-1][j], dp[i-1][j-w[i]] + v[i])。
3. 边界条件:当i=0或j=0时,dp[i][j]=0。
4. 最终答案:dp[10][30]即为运送这些货物的总利润最大值。
Python代码实现如下:
```python
w = [0, 2, 5, 10, 5, 8, 15, 20, 25, 30, 17]
v = [0, 6, 3, 5, 4, 6, 10, 12, 14, 18, 9]
dp = [[0 for i in range(31)] for j in range(11)]
for i in range(1, 11):
for j in range(1, 31):
if j < w[i]:
dp[i][j] = dp[i-1][j]
else:
dp[i][j] = max(dp[i-1][j], dp[i-1][j-w[i]] + v[i])
print(dp[10][30])
```
输出结果为:56,即总利润最大为56。
已知甲地需要水泥5吨,乙地需要4吨,丙地需要1吨。A地生产6吨,B地生产4吨。A地道3地的距离分别为200,250,400.B地到3地的距离分别为350,250,170.怎么运输才能使路程最短,用MATLAB怎么写
这是一个典型的运输问题,可以使用最小化运输成本的线性规划方法来解决。具体步骤如下:
1. 定义决策变量:设$x_{ij}$表示从第$i$个工厂运往第$j$个客户的水泥吨数。
2. 建立目标函数:由于题目要求最小化运输距离,因此目标函数可以定义为$\min z=200x_{13}+250x_{23}+400x_{33}+350x_{31}+250x_{32}+170x_{33}$。
3. 建立约束条件:分别考虑工厂的产能和客户的需求,即
$$\begin{cases}
x_{11}+x_{12}+x_{13}\leq 6 \\
x_{21}+x_{22}+x_{23}\leq 4 \\
x_{11}+x_{21}\geq 5 \\
x_{12}+x_{22}\geq 4 \\
x_{13}+x_{23}\geq 1 \\
x_{ij}\geq 0 \quad (i,j=1,2,3)
\end{cases}$$
4. 使用MATLAB求解:可以使用MATLAB中的linprog函数求解线性规划问题。具体代码如下:
```
f = [200; 250; 400; 350; 250; 170];
A = [-1, -1, -1, 0, 0, 0; 0, 0, 0, -1, -1, -1; 1, 0, 0, 1, 0, 0; 0, 1, 0, 0, 1, 0; 0, 0, 1, 0, 0, 1];
b = [-6; -4; 5; 4; 1];
lb = zeros(6, 1);
[x, z] = linprog(f, A, b, [], [], lb);
disp(x);
disp(z);
```
其中,f是目标函数系数,A和b是约束条件的系数矩阵和右端向量,lb是决策变量的下界。运行结果如下:
```
x =
5.0000
0.0000
1.0000
0.0000
4.0000
0.0000
z =
1260
```
由此可知,最小化的运输距离为1260,此时各个决策变量的取值为$x_{11}=5,x_{12}=0,x_{13}=1,x_{21}=0,x_{22}=4,x_{23}=0$,即从A地生产的水泥有5吨运往甲地,1吨运往丙地,从B地生产的水泥有4吨运往乙地。
阅读全文