【python经典案例-第一例】

学习目标:

1.成功输出案例

2.掌握条件语句

3.掌握循环语句


学习内容:

题目:有1,2,3,4,个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
if __name__ == '__main__':
    num = 0  # 定义数量
    for i in range(1, 5):  # 百位数字
        for j in range(1, 5):  # 千位数字
            for k in range(1, 5):  # 个人数字
                if i != j and j != k and i != k:  # 重复判定
                    print(str(i) + str(j) + str(k), end=' ')  # 一行输出数字
                    num += 1  # 数量统计
    print()  # 换行
    print('能够组成' + str(num) + '个')  # 输出个数

学习时间:

  • 周五晚上 10点—晚上10点30

学习产出:

 未来可期

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
假设你要去旅行,你有一个背包,背包可以装下重量为W的物品。你有n个物品,每个物品有它的重量和价值。你的目标是选择一些物品装进你的背包,使得它们的总重量不超过W,同时它们的总价值最大。 这是一个经典的动态规划问题,可以用python来解决。以下是使用python实现背包问题的动态规划算法: 1.定义函数 def knapsack(w, wt, val, n): #w是背包的容量 #wt是物品的重量列表 #val是物品的价值列表 #n是物品的数量 #返回最大价值 2.初始化矩阵 K = [[0 for x in range(w+1)] for x in range(n+1)] #创建一个二维数组,K[i][j]表示前i个物品,在背包容量为j的情况下所能获得的最大价值。 3.填充矩阵 for i in range(n+1): for j in range(w+1): if i==0 or j==0: K[i][j] = 0 elif wt[i-1] <= j: K[i][j] = max(val[i-1] + K[i-1][j-wt[i-1]], K[i-1][j]) else: K[i][j] = K[i-1][j] #如果第i个物品的重量小于等于j,那么我们就考虑是否将第i个物品放入背包。 #如果放入背包,那么最大价值就是第i个物品的价值加上剩下空间的最大价值。 #如果不放入背包,那么最大价值就是不考虑第i个物品的最大价值。 #然后我们取这两个值的最大值作为K[i][j]的值。 4.返回最大价值 return K[n][w] #返回最后一个元素,即所有物品都被考虑并且背包达到容量的最大价值。 以下是完整的代码实现: def knapsack(w, wt, val, n): K = [[0 for x in range(w+1)] for x in range(n+1)] for i in range(n+1): for j in range(w+1): if i==0 or j==0: K[i][j] = 0 elif wt[i-1] <= j: K[i][j] = max(val[i-1] + K[i-1][j-wt[i-1]], K[i-1][j]) else: K[i][j] = K[i-1][j] return K[n][w] #测试代码 val = [60, 100, 120] wt = [10, 20, 30] w = 50 n = len(val) print(knapsack(w, wt, val, n)) #输出结果为220

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

爱学习的小史努比

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

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

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

打赏作者

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

抵扣说明:

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

余额充值