2021华为软件精英挑战赛,思路框架,欢迎留言讨论

2021华为软件精英挑战赛,思路框架。

1.对数据初始化封装

  1. 服务器
  • 用集合来进行封装,集合由字符串和数组组成键值对

    {"服务器型号":[cpu内核,内存,硬件价格,能耗]}
    例如:
    {"NV603":[92 324 53800 500]"}
    
  1. 虚拟机
  • 同样用集合来进行封装,集合由字符串和数组组成键值对。

    {"虚拟机型号":[cpu内核,内存,部署方式(0或1)]}
    例如:
    {"NV603":[92 324 0]"}
    
  1. 每一天的请求序列
  • 可以用一个动态的二位数组来表示,数据类型用字符串。

    {{请求创建},{请求删除},...,{...}}
    {{add, c3.large.4, 5},{del, 0},...,{...}}
    

2.购买服务器

​ 题目已经说过,刚开时是没有服务器的,你不可能等请求来了才去购买服务器,所以要购买一定数量的服务器。就像家里的衣柜一样,不管有没有衣服,你都要先购买好衣柜,这个衣柜可能大也可能小。如果以后你买的衣服越来越多,那么你就得添加衣柜(服务器扩容)。

  • 购买服务器数量和每台服务器所部署的虚拟机数量可以用一个动态数组表示,题目说过服务器的ID编号从0开始,所以数组的索引即为服务器ID,索引对应的值即为该服务器上部署的虚拟机数目。

    刚开始:
    {0,0,0,...,0}//假设购买n台服务器,初始化都为0,即没有部署虚拟机。
    
  • 购买了服务器自然要做相关的记录。

    • 虚拟机部署在那台服务器、以及数量。可以用一个集合表示:

      {"虚拟机ID":[所部署服务器ID,Cpu核,内存,部署方式(自己选者合适的方式表示)]}
      例如:
      双节点:
      {"233":[3,32,200,1,2]}
      单节点A:
      {"233":[3,32,200,1]}
      单节点B:
      {"233":[3,32,200,1]}
      

3. 如何实现匹配

在购买完服务器之后,请求序列就可以进行读取了。我们就可以按照顺序完成虚拟机部署的任务了。

以面向过程分析:

需要实现的功能,即写一个函数完成功能:

  1. 匹配功能:能完成创建和删除虚拟机。
  2. 创建功能:虚拟机部署在那台服务器、以及数量的记录。
  3. 删除功能:删除虚拟机部署在那台服务器、以及数量的记录。
  4. 选择服务器功能:成功选取合适的服务器。
  5. 扩容功能:在服务器容量不足时购买服务器。
  6. 迁移功能:记录迁移数,合适的时候进行,提高资源利用率。

4. 输出

最后,可根据你用来记录购买服务器数量和每台服务器所部署的虚拟机数量的那个动态数组计算你的成本以及能耗

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

tacit-lxs

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

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

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

打赏作者

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

抵扣说明:

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

余额充值