今天真是被罗志祥的大瓜砸到了!全网络都是关于“小猪”的新闻,这前女友公开吃瓜确实强悍! “小猪”是怎么管理时间的?作为程序员,感觉这是一个很有技术的优化问题,称为动态规划~! 直接掏出大杀器“递归树“”进行分析。 构造函数tm(总时间 , 时间成本 , 愉悦度 , 总人数),我们可以先分析c小姐: 无非两种情况,约和不约,如果在最优方案里面约c小姐,那你就应该在总时间30里面减去25,同时收获愉悦度+120,如果不约最优方案里面你可以使用的时间还是30。 这里需要说明的是比如b小姐的tm(5-20,1)这种情况,说明剩下的时间不满足约会b小姐,所以可以跳过这种情况,直接5小时保持不变,直接考虑下一种“总人数-1”的情况,本例中就是”1-1″,所以下一种情况的表达函数就是tm(5, 0)。自然在这种情况下,也不能收获愉悦度。 经过递归树的分析,如果规模比较大,你会发现有很多子问题都重复计算了,这个时候你就可以利用用空间换时间的思想去优化你代码的时间复杂度,这也就是动态规划的最后一步。 加上cache之后,从上到下进行优化的代码 很多人做觉得算法只是解决工程问题,其实生活中的各种问题你都可以用算法的视角去观察。 如果对动态规划感兴趣可以观察我的视频,持续更新中。 就这一次干翻动态规划 – Longest Common Subsequence 就这一次干翻动态规划 Longest Increasing Subsequence最火的瓜,得用动态规划来吃
你不懂?
没关系,我快速教会你。一、 递归树分析
先来把数据整理一下:愉悦度 = [60, 100, 120] 时间成本 = [10, 20, 25] 总时间 = 30 总人数 = 3
不管你约或者不约,接下来我们都不用考虑c小姐对最优方案的影响了。
接下来我把完整的递归树画出来,因为空间问题,我省略了不变的时间成本和愉悦度参数。
还有就是当总人数为0,或者总时间为0的时候,我们直接返回0就好,这个时候的情况就是要么是没有人可以约了,要么就是没有时间可以约人了,所以也就没有办法收获愉悦度了。
`二、 动态规划的代码
最开始直接用递归解决的代码def tm(total_time , time_cost , profit , n): if n == 0 or total_time == 0 : return 0 if time_cost[n-1] > total_time: res = ans(total_time , time_cost , profit , n-1) return res else: res = max(profit[n-1] + tm(total_time-time_cost[n-1] , time_cost , profit , n-1), tm(total_time , time_cost , profit , n-1)) return res profit = [60, 100, 120] time_cost = [10, 20, 25] total_time = 30 n = len(profit) print(tm(total_time , time_cost , profit , n))
def tm(total_time , time_cost , profit , n): if n == 0 or total_time == 0 : return 0 if dp[n-1][total_time-1] != 0 : return dp[n-1][total_time-1] if time_cost[n-1] > total_time: res = ans(total_time , time_cost , profit , n-1) dp[n-1][total_time-1] = res return res else: res = max(profit[n-1] + tm(total_time-time_cost[n-1] , time_cost , profit , n-1), tm(total_time , time_cost , profit , n-1)) dp[n-1][total_time-1] = res return res profit = [60, 100, 120] time_cost = [10, 20, 25] total_time = 30 n = len(profit) dp = [[0] * (total_time) for _ in range(n)] print(tm(total_time , time_cost , profit , n))
三、 与妹子沟通是个技术活
只有这样你才会发现像“小猪”这样的高手!
时间是有限的,妹子是有限的,如何在有限的时间里与妹子最愉悦的在一起是一个技术活!
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算