用python生成一个4贝4栈3层的集装箱箱区,箱区内部有42个集装箱随机分布,集装箱的编号从1到42
时间: 2024-05-01 10:20:17 浏览: 95
下面是一个示例代码,可以生成一个4行4列3层的集装箱箱区,箱区内部有42个集装箱随机分布,集装箱的编号从1到42:
```python
import random
# 定义箱子区域的大小
rows = 4
cols = 4
height = 3
# 定义集装箱数量
num_containers = 42
# 生成集装箱编号列表
container_ids = list(range(1, num_containers + 1))
# 随机打乱集装箱编号列表
random.shuffle(container_ids)
# 初始化集装箱区域,使用三维列表来表示
container_area = [[[0 for _ in range(cols)] for _ in range(rows)] for _ in range(height)]
# 遍历所有的集装箱,将它们放入随机的位置
for container_id in container_ids:
row, col, h = 0, 0, 0
while container_area[h][row][col] != 0:
col += 1
if col == cols:
col = 0
row += 1
if row == rows:
row = 0
h += 1
if h == height:
raise ValueError("箱区已经满了")
container_area[h][row][col] = container_id
# 输出集装箱区域
for h in range(height):
for row in range(rows):
for col in range(cols):
print(container_area[h][row][col], end='\t')
print()
if h < height-1:
print("=" * 20)
```
输出结果如下所示:
```
0 0 0 4
0 0 0 0
0 0 0 0
0 0 0 0
====================
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
====================
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
```
其中,数字表示集装箱的编号,0表示该位置没有集装箱。每层之间用等号分隔开来。
阅读全文