贪心的交易(函数)
描述
商品价格每天都在变化,作为一个商人,需要低买高卖赚取利润,通常会根据历史数据,检验策略的收益。
已知有一个商品历史价格变化列表。其中第 i 个元素是第 i 天该商品的价格。
现在使用的贪心策略是在该过程中要求必须尽可能多的进行获利的交易,并且每次买入时都要先清仓(全部卖出上一次买入的商品),不能同时进行多笔交易。
定义一个函数,计算你在这种策略下能获取的最大利润。
比如价格列表为 [1,3,5,1,8],利润最大为11元,
第1天买入,第2天卖出 获利3-1=2元
第2天买入,第3天卖出 获利5-3=2元
第4天价格跌落,所以第三天无交易
第4天买入,第5天卖出 获利8-1=7元
总利润为 2+2+7=11元
本题的编程模板会帮助你建立一个随机的价格列表(价格在1-100元的闭区间中),你需要在两行中各输入一个整数,第一行输入一个可交易的总天数(即列表中的价格个数),第二行输入一个整数做为随机种子。
输出时模板会在两行中分别输出生成的价格列表以及能获取的最大利润。
提示:列表的索引使用方式与字符串相同。
输入
在两行输入中各输入一个整数
输出
生成的价格列表
获取的最大利润文章来源:https://www.toymoban.com/news/detail-435837.html
输入
示例 1
10
6
输出
[74, 11, 63, 98, 34, 5, 1, 19, 85, 76]
171文章来源地址https://www.toymoban.com/news/detail-435837.html
import random
def f(prices):
le=len(prices)-1
i=0
sum=0
while((i+1)<=le):
if(prices[i]<prices[i+1]):
sum+=prices[i+1]-prices[i]
i+=1
return sum
n=int(input())
x=int(input())
random.seed(x)
ls=[random.randint(1,100) for i in range(0,n)]
print(ls)
print(f(ls))
到了这里,关于python 贪心交易(函数)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!