贪心算法-分数背包问题(Python实现)

简介: 贪心算法-分数背包问题(Python实现)
import ioTool
def beibao(s,m,b):
    bb = 0  # 现在的背包容量
    beibaoA = [] #放入背包的东西
    #循环的i的范围不能超过传过来的数量,并且背包的容量也不能超过预定的数量(例如:50,则只能小于等于50)
    i = 0
    while i < len(s) and bb<=b:
        #判断是否已经放入背包了
        if len(beibaoA)  != 0:
            #背包里现在没装,并且数量也不够
            if beibaoA.__contains__(s[i]) == False  and bb<b and (bb + s[i]) <= b:
                beibaoA.append(s[i])  # 暂存
                bb = bb + s[i]
            elif beibaoA.__contains__(s[i]) == False  and bb<b and (bb + s[i]) >= b:
                num = b - bb
                bb = bb + num
                beibaoA.append(num)
        else:
            beibaoA.append(s[i])  # 暂存
            bb = bb + s[i]
        i += 1
    return beibaoA,bb
if __name__ == '__main__':
    # 价值 / 重量    价值比从高低排序,,没超过往里装,超过了就不装了。  分数背包
    s = [ 10, 20, 30]  # 重量
    m = [60, 100, 120]  # 价值
    b = 50  # 背包总容量
    k = 0
    beibao  = beibao(s,m,b)
    print("背包中存入的:", beibao[0])
    print("背包的容量:", beibao[1])
    for i in range(len(s)):
        print("从:商品",i,"取:",beibao[0][i])
    ioTool.writeLine(beibao, "output2.txt")

结果

目录
相关文章
|
7天前
|
机器学习/深度学习 人工智能 算法
海洋生物识别系统+图像识别+Python+人工智能课设+深度学习+卷积神经网络算法+TensorFlow
海洋生物识别系统。以Python作为主要编程语言,通过TensorFlow搭建ResNet50卷积神经网络算法,通过对22种常见的海洋生物('蛤蜊', '珊瑚', '螃蟹', '海豚', '鳗鱼', '水母', '龙虾', '海蛞蝓', '章鱼', '水獭', '企鹅', '河豚', '魔鬼鱼', '海胆', '海马', '海豹', '鲨鱼', '虾', '鱿鱼', '海星', '海龟', '鲸鱼')数据集进行训练,得到一个识别精度较高的模型文件,然后使用Django开发一个Web网页平台操作界面,实现用户上传一张海洋生物图片识别其名称。
86 7
海洋生物识别系统+图像识别+Python+人工智能课设+深度学习+卷积神经网络算法+TensorFlow
|
10天前
|
机器学习/深度学习 算法 C++
【洛谷 P2240】【深基12.例1】部分背包问题 题解(贪心算法)
**深基12.例1**是部分背包问题,$N$堆金币,每堆$(m_i, v_i)$,$T$承重限制。按金币单价降序装包,保证价值最大化。输入$N,T$及每堆金币详情,输出两位小数的最大价值。示例:输入$4,50$,输出$240.00$。AC代码使用C++,通过排序和迭代实现。
20 0
|
7天前
|
机器学习/深度学习 人工智能 算法
【昆虫识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50
昆虫识别系统,使用Python作为主要开发语言。通过TensorFlow搭建ResNet50卷积神经网络算法(CNN)模型。通过对10种常见的昆虫图片数据集('蜜蜂', '甲虫', '蝴蝶', '蝉', '蜻蜓', '蚱蜢', '蛾', '蝎子', '蜗牛', '蜘蛛')进行训练,得到一个识别精度较高的H5格式模型文件,然后使用Django搭建Web网页端可视化操作界面,实现用户上传一张昆虫图片识别其名称。
130 7
【昆虫识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50
|
8天前
|
机器学习/深度学习 人工智能 算法
【球类识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+TensorFlow
球类识别系统,本系统使用Python作为主要编程语言,基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集 '美式足球', '棒球', '篮球', '台球', '保龄球', '板球', '足球', '高尔夫球', '曲棍球', '冰球', '橄榄球', '羽毛球', '乒乓球', '网球', '排球'等15种常见的球类图像作为数据集,然后进行训练,最终得到一个识别精度较高的模型文件。再使用Django开发Web网页端可视化界面平台,实现用户上传一张球类图片识别其名称。
101 7
【球类识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+TensorFlow
|
4天前
|
算法 数据中心 Python
基于python雪花算法工具类Snowflake-来自chatGPT
基于python雪花算法工具类Snowflake-来自chatGPT
15 4
|
10天前
|
存储 算法 Python
python常用算法(5)——树,二叉树与AVL树(一)
python常用算法(5)——树,二叉树与AVL树
|
12天前
|
算法 数据可视化 Python
Python中的决策树算法探索
Python中的决策树算法探索
|
16天前
|
存储 算法 调度
力扣中级算法(Python)
力扣中级算法(Python)
|
16天前
|
算法 Python
力扣初级算法(Python)(二)
力扣初级算法(Python)(二)
|
16天前
|
存储 机器学习/深度学习 算法
【数据结构与算法】:手搓顺序表(Python篇)
【数据结构与算法】:手搓顺序表(Python篇)