gpt4 book ai didi

python - 动态规划 - 原始计算器 Python

转载 作者:太空宇宙 更新时间:2023-11-04 08:48:40 25 4
gpt4 key购买 nike

<分区>

此作业旨在对只能加 1、乘以 2 和乘以 3 的原始计算器实现动态编程方法。因此,输入 n 确定达到 n 的最小运算次数。我实现了一个非常幼稚的 dp 或者我认为是 dp 方法。它不工作。我没有其他人要问。对于 n = 5 的输入,下面的输出是:([0, 1, 2, 2, 3, 4], [1, 1, 2, 3, 4, 5]) 而有两个正确的输出列表编号 = [1, 2, 4, 5] 或 [1, 3, 4, 5]。一些帮助将不胜感激。

def DPmin_operations(n):

numbers = []
minNumOperations = [0]*(n+1)
numOps = 0
numbers.append(1)

for k in range(1,n+1):
minNumOperations[k] = 10000

# for *3 operator
if k % 3 == 0:
numOps = minNumOperations[k//3] + 1
if numOps < minNumOperations[k]:
minNumOperations[k] = numOps
numbers.append(k)
# for *2 operator
elif k % 2 == 0:
numOps = minNumOperations[k//2] + 1
if numOps < minNumOperations[k]:
minNumOperations[k] = numOps
numbers.append(k)
# for + 1 operator
elif k >= 1:
numOps = minNumOperations[k - 1] + 1
if numOps < minNumOperations[k]:
minNumOperations[k] = numOps
numbers.append(k)

return (minNumOperations, numbers)

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com