[求职面试][综合题]综合题目汇总

黄盖
• 阅读 2674

有一个淘宝商户,在某城市有n个仓库,每个仓库的储货量不同,现在要通过货物运输,将每次仓库的储货量变成一致的,n个仓库之间的运输线路围城一个圈,即1->2->3->4->...->n->1->...,货物只能通过连接的仓库运输,设计最小的运送成本(运货量*路程)达到淘宝商户的要求,并写出代码。

网上的解答多如牛毛, 也乱七八糟, 这里是比较好的一个

列方程, 将所有的cost用一个变量表示。

av表示平均下来每个仓库的容量。 ki表示仓库i向仓库i+1输送多少(可以为负),列出方程组
wi表示仓库i的存储量

    av=w1+kn-k1
    av=w2+k1-k2
    av=w3+k2-k3
       ...
    av=wn+ kn-1 + kn

将所有k都用kn表示, 有

    k1=kn+ w1 -  av
    k2=kn+ w1+w2 - 2*av
    k3=kn+ w1+w2+w3 - 3*av
        ...
    kn = kn //这里就不必也不能推出别的式子了

令 sum(i) = -(w1+w2+...+wi-i*av) (写成这样方便)

目标函数:

{ |kn-sum(1)|+|kn-sum(2)|+...+|kn-sum(n-1)| + |Kn| }

最小一乘, 中位数 sum(0)~sum(n-1)的中位数。

关于中位数的理论:
最小一乘和最小二乘
Modes, Medians and Means: A Unifying Perspective

类似问题

邮局选址问题

(摘自)
在一个按照东西和南北方向划分成规整街区的城市里,n个居民点散乱地分布在不同的街区中。用x 坐标表示东西向,用y坐标表示南北向。各居民点的位置可以由坐标(x,y)表示。

街区中任意2 点(x1,y1)和(x2,y2)之间的距离可以用数值|x1-x2|+|y1-y2|度量。

居民们希望在城市中选择建立邮局的最佳位置,使n个居民点到邮局的距离总和最小。

因为任意2 点(x1,y1)和(x2,y2)之间的距离是用数值|x1-x2|+|y1-y2|度量的,那么n个点P1----Pn到邮局地点P(x,y)的距离之和可以表示为: |x1-x|+ |x2-x|+……+|xn-x| + |y1-y|+ |y2-y|+……+|yn-y| 。
这样一来,问题转变为分别求x轴和y轴上的一个点,使得该轴上的其他点坐标与该点坐标的差的绝对值之和最小。
于是问题就变为求解中位数。因为给定一个数列,中位数有这样的性质 :所有数与中位数的绝对差之和最小。
下面给出简略证明(因为如果证明中位数的性质正确,则该题就可以用求解中位数来解题):

首先,给定一个从小到大的数列x1,x2,……,xn,设x是从x1到xn与其绝对差之和最小的数,则显然x位于x1与xn之间。那么,由于x1,xn与它们之间的任意一点的距离之和都相等,且都等于xn-x1,因此接下来可以不考虑x1与xn,而考虑剩下的从x2到x[n-1]的数,同样显然有x必然位于x2和x[n-1]之间,依次类推,最后得出的结论是x就是该数列中间的那个数,或者是中间的那两个数之一,而这个数就是中位数。

  结论:数列的中位数就是该数列各个数与其绝对差之和最小的数。
点赞
收藏
评论区
推荐文章
皮卡皮卡皮 皮卡皮卡皮
4年前
git 本地代码提交到远程仓库
git将本地代码添加到远程仓库1.本地初始化使用gitinit进行初始化可以使用lsa就可以看到.git文件2.创建远程仓库点击复制仓库地址3.连接远程仓库shellgitremoteaddoriginhttps://gitee.com/test/test.git4.将远程仓库的文件pull到本地gitpullrebase
物流路由线路配载前端算法逻辑实现方案
配载代表着某条线路是否具有发往某个方向(区域、省市县、分拣等)的能力,也可以说是网点(分拣中心)是否具有承载配载所指方向货物的能力。一般网络规划者,在均衡线路间货量时,会通过调整配载来完成。线路上可允许配载货物的“产品类型、最终妥投目的地”,通过线路的配载,计算当前网点到目的网点的下一个网点,线路绑定的配载代表通过当前线路最终可以到达的目的地
Stella981 Stella981
4年前
Maven配置文件中 mirror和repository的区别及中央仓库配置大全
1、Maven配置文件中mirror和repository的区别1.1repositoryrepository就是个仓库,maven里有两种仓库,LocalRepository(本地仓库)和RemoteRepository(远程仓库)。!(https://oscimg.oschina.net/oscnet/up0
Wesley13 Wesley13
4年前
GIT命令大全
Git命令大全Git最小配置某账号下所有的Git仓库都有效gitconfigglobaluser.name'您的名称'gitconfigglobaluser.email'您的Email'只对当前Git仓库有效gitconf
Stella981 Stella981
4年前
Git 代码迁移
1、将项目projectA从仓库repoA迁移至repoBgitclonebarerepoAcdprojectAgitpushmirrorrepoB2、将原仓库repoA中某个项目project中的某分支branchX迁移至新
Stella981 Stella981
4年前
Docker搭建私有镜像仓库
docker仓库的工作原理和maven的类似,他们都提供了提供了一个中央仓库,允许用户科技直接从中央仓库下载,同时我们也可以搭建自己的本地私有仓库。docker本地私有镜像仓库的优点:1.从私有仓库中下载节省网络带宽;2.从私有仓库中下载速度快,一般都是局域网络内部署;3.托管不对外的内部镜像;下面我们将完整的说明使用docker
Wesley13 Wesley13
4年前
Java多线程之线程协作
常见的线程协作方式是:生产者/消费者。一个线程作为生产者,生产要处理数据,比如拿一个线程来生产Order,用户每下一单,此线程就生产一个Order对象。设置一个仓库,来存放生产出来的Order对象。一个线程作为消费者,消费|处理仓库中的Order对象(打印订单、拣货、发货)。demo  订单处理流程1、用
Wesley13 Wesley13
4年前
MySQL查询:查询一个表中类别字段中Max()最大值对应的记录
问题是:数据库有一个表code,里面有个点击量字段click\_num和一个类别字段kind以及其它信息字段,现在要搜出每个类别中点击量最大的那条记录,如果是10个类别,那么结果应该是10条记录,如果最大点击量有两个相同的只要一条。经过N次搜索,N次检测网上的解决SQL语句,终于找到个优雅的而且结果正确的SQL,这个是一个博客作者在Mysq
Wesley13 Wesley13
4年前
3个问题,让你快速了解数据仓库
点击标题下「数据私房菜」可快速关注上周的原创文章中,给大家介绍了数据仓库中模型设计的一些思路和方法,今天我们通过三个问题,让大家快速了解数据仓库。1数据仓库和数据库,傻傻分不清楚?很多人未入行的人经常讲数据库和数据仓库搞混,简单来说,数据库是一种具体的技术,而数据仓库是一种基于数据库技术的结构体系。数据仓库是一个面向主
Stella981 Stella981
4年前
Docker初学
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。这次首先说一下docker的三个重要内容:仓库:注册服务器是一个存放仓库的地方,在里面可以存放多个仓库。每个仓库集中存放同
万界星空科技WMS仓储管理包含哪些具体内容?
​wms仓库管理是通过入库业务、出库业务、仓库调拨、库存调拨和虚仓管理等功能,综合批次管理、物料对应、库存盘点、质检管理、虚仓管理和即时库存管理等功能综合运用的管理系统,有效控制并跟踪仓库业务的物流和成本管理全过程,实现完善的企业仓储信息管理。
黄盖
黄盖
Lv1
墙里秋千墙外道。墙外行人,墙里佳人笑。笑渐不闻声渐悄,多情却被无情恼。
文章
8
粉丝
0
获赞
0