二分法解决“最大化最小值问题”

本文介绍了一个最大化最小值的问题,常见于通信链路优化,通过一个牛舍位置的例子来阐述如何利用二分法寻找最大的最小距离。通过排序、设定上下界并运用二分查找,逐步调整最小距离直至找到最优解。
摘要由CSDN通过智能技术生成

最大化最小值问题

   “最大化最小值”为了提升优化目标中表现最差的成分。这个问题在通信链路中应用比较多,如基站同时和多用户通信,每个基站到用户的通信为一个通信链路,且基站的发射功率是固定的。为了保证所有的通信链路都正常工作,应该去优化最差链路的通信情况,降低信道较好链路的基站发射功率,增加信道较差链路的基站发射功率,这是一个最大化最小值问题。

例题

   一座有n(2<=n<=100000)间牛舍的小屋,牛舍排在一条直线上,第i间牛舍在xi(0<=xi<=1000000000)的位置。。一共有c头牛,为了防止牛之间互相攻击互相伤害,因此决定把每头牛都放在离其它牛尽量远的牛舍,使任意两头牛之间的最小距离尽可能大,那么,这个最大的最小距离是多少呢?
例如 输入:(3,[1,2,8,4,9]),输出:3

解释:3代表3头牛,列表[1,2,8,4,9]代表五间牛舍的位置。
把三头牛分别放在位置是1,4,8或1,4,9的牛舍时,它们间隔的最小距离最大,是3

编程思路
   将C头牛放在N个点中,如果点的位置理想化,那么C个点间的最大距离是:dis=(Pmax-Pmin)/(C-1)。(即最大的坐标-最小的坐标再除以C-1)。 
   首先对隔间位置xi从小到大排序,然后以left=0为下界,以right&

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值