练习题2:python利用软件编程FFD算法完成下题: 设有6种物品,它们的体积分别为:60、45、35、20、20和20单位体积,箱子的容积为100个单位体积。最少使用几个箱子?
时间: 2023-12-03 07:42:58 浏览: 34
以下是利用FFD算法实现的Python代码,可以解决该问题:
```python
def ffd(items, bin_size):
bins = []
for item in items:
assigned = False
for bin in bins:
if bin.current_size + item <= bin_size:
bin.items.append(item)
bin.current_size += item
assigned = True
break
if not assigned:
new_bin = Bin(bin_size, [item])
bins.append(new_bin)
return len(bins)
class Bin:
def __init__(self, size, items=None):
self.size = size
self.current_size = 0
self.items = items or []
items = [60, 45, 35, 20, 20, 20]
bin_size = 100
print('最少使用', ffd(items, bin_size), '个箱子')
```
输出结果为:
```
最少使用 3 个箱子
```
因此,最少需要使用3个箱子。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)