DVD在线租赁决策优化模型_第1页
DVD在线租赁决策优化模型_第2页
DVD在线租赁决策优化模型_第3页
DVD在线租赁决策优化模型_第4页
DVD在线租赁决策优化模型_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、dvd在线租赁决策优化模型数学与应用数学2002级 文海荣(湖南科技学院数学与计算科学系,中国,永州425006)摘 要:本文建立了关于dvd在线租赁业务一系列问题的数学模型。首先,建立概率模型,并得 到dvd的最少需求数量。接下来给出了目标规划模型建立最优分配方案,在模型的求解过程中,先 后给出了三种近似算法:模拟退火算法、贪婪算法和改进贪婪算法。再建立一调度模型使得dvd数 量最少,分配方案最优。本论文所建模型理论基础较完善,算法简洁快速,可操作性强,在计算机 上对给定数据可以实时得到结果,因此有较强的实用性;并且只需经过简单的修改便可解决类似问 题,易于推广。关键词:dvd在线租赁;正态

2、分布;线性规划;贪婪算法;模拟退火算法;改进贪婪算法the policy-making optimization model about dvd on-line rentswen hairong(department of mathematics and compute, hunan university of science and engineering, yongzhou,425006, china)abstract: this article established on-line has rented service a series of questions about dvd t

3、he mathematical model. first, establishes the probabilistic model, and obtains dvd the least demands quantity. met down has produced the target programming model establishment most superior assignment plan, in the model solution process, has produced three approximate methods successively: simulatio

4、n annealing algorithm, greedy algorithm and improvement greedy algorithm. again establishes a dispatch model to cause the dvd quantity few, the assignment plan is most superior. the present paper modeling rationale consummates, the algorithm succinct is fast, feasibility, to assigns the data on the

5、computer to be possible real-time to obtain the result, therefore has the strong usability; and only must pass through the simple revision then to be possible to solve the similar problem, is easy to promote.key words: dvd on-line rents; normal distribution; linear programming; greedy algorithm; sim

6、ulation annealing algorithm; improves the greedy algorithm一、绪论随着信息时代的到来,网络成为人们生活中越来越不可或缺的元素之 一。许多网站利用其强大的资源和知名度,面向其会员群提供日益专业化 和便捷化的服务。音像制品的在线租赁就是一种可行的服务。考虑如下的在线dvd租赁问题。顾客缴纳一定数量的月费成为会员, 订购dvd租赁服务。会员对哪些dvd有兴趣,只要在线提交订单,网站就 会通过快递的方式尽可能满足要求。会员提交的订单包括多张dvd,这些 dvd是基于其偏爱程度排序的。网站会根据手头现有的dvd数量和会员的订 单进行分发。每个会员

7、每个月租赁次数不得超过2次,每次获得3张dvd。 会员看完3张dvd之后,只需要将dvd放进网站提供的信封里寄回(邮费 由网站承担),就可以继续下次租赁。考虑以下问题:1、网站正准备购买一些新的dvd,通过问卷调查1000个会员,得到了 愿意观看这些dvd的人数(表1给出了其中5种dvd的数据)。此外,历史 数据显示,60%的会员每月租赁dvd两次,而另外的40%只租一次。假设网 站现有10万个会员,对表1中的每种dvd来说,应该至少准备多少张,才 能保证希望看到该dvd的会员中至少50%在一个月内能够看到该dvd?如果 要求保证在三个月内至少95%的会员能够看到该dvd呢?2、表2中列出了网

8、站手上100种dvd的现有张数和当前需要处理的1000 位会员的在线订单(表 2的具体数据可从 http: /mcm. edu. cn/mcm05/problems2005c. asp 下载),如何对这些 dvd 进 行分配,才能使会员获得最大的满意度?要求具体列出前30位会员(即 c000rc0030 )分别获得哪些dvd。3、继续考虑表2,并假设表2中dvd的现有数量全部为0。如果你是 网站经营管理人员,你如何决定每种dvd的购买量,以及如何对这些dvd 进行分配,才能使一个月内95%的会员得到他想看的dvd,并且满意度最大?4、从网站经营管理人员的角度考虑在dvd的需求预测、购买和分配中

9、还有哪些重要问题值得研究?提出问题,并尝试建立相应的数学模型。表1对1000个会员调查的部分结果dvd名称dvd1dvd2dvd3dvd4dvd5愿意观看的人数200100502510二、模型假设和符号说明(一)模型假设1、租赁周期为半个月或一个月,凡半个月内还回dvd的会员均认定为 每个月租赁2次的会员,否则为只租赁1次的会员;2、每个会员每个月只能提交一次订单,提交订单时间为上月月末;3、一个月为30天,分为上半个月和下半个月,每月的1日和16日网 站根据用户订单对dvd进行分配;4、会员租赁成功是指该会员必须获得3张dvd且此3张dvd均为该会 员在订单中所选中的,否则均为租赁不成功;5

10、、租赁不成功即认为没有得到想看的dvd;6、每个人每张碟月内只租一次;7、网站在每次出租dvd碟的时候,将手头上的碟要尽可能的租出去;8、会员提交的定单包括多张dvd碟,这些dvd碟是根据会员的偏爱程 度来排序的;9、网站每次进行分配时,只考虑网站现有dvd张数;10、网站只在每月的1日购买新碟,其余时间均不购碟;11、不愿意观看某种dvd碟的会员不会租看该dvd碟;12、不考虑碟片在流通和使用过程中的自然损坏、遗失;13、会员对dvd碟的偏爱程度由0, 1,,10来表示,数字越小表示 会员的偏爱程度越高,数字0表示对应的dvd当前不在会员的在线订单中。(二)符号说明严:第i种dvd碟应准备的

11、数目;埸:将第i种dvd碟第£次给第j类会员的数目,后1,,6;户1,2;n :第i种dvd碟愿意观看的人数;-:第丿号会员租赁期结束对网络公司服务的满意度,比=1,2;./= 1,-,1000;e:群体满意度;cf:第丿号会员对第i种dvd的偏爱程度 心1,100; 7 = 1,.,1000;期):第丿号会员对第j种dvd的偏爱程度指标,且r;"=l_°c(i)/ = !,100; ; = !,1000;s:第j号会员是否租赁到第,种dvd,若是,则取值为1;否,则取值为0,心1,100; ) = 1,1000;v(,):第i种dvd的购买量,i = l,100

12、;m(/):在一月内可使至少95%的会员租赁到第i种dvd的最小碟数(由 问题1的计算知它可看作的上限);心:第/种dvd碟每月租出的次数;m :网站现有会员的人数;p第丿种dvd被选中的概率; q第j种dvd没被选中的概率; 4:每月租赁dvd 次的会员的比例; 0:每月租赁dvd二次的会员的比例; d第j种dvd应准备的数量; ©: 个月内对第j种dvd;n: dvd每月可用次数的数学期望值;qj:某月内对第j种dvd需求的人数上限。三、模型的建立与求解(一)问题1考虑到会员租碟的实际情况,表1中给出的选择某种dvd的人数可以 认为是某月选择该dvd人数的数学期望,每月实际选择该

13、dvd的人数会在 其周围波动,我们认为对第j种碟片的总需求可以用正态分布nunpjmpjqj 近似(此处m = 100000),可以算出第丿种dvd的需求人数上限0 (在一定置信 区间下,这里我们选取0.95),只要在租借过程中满足上限0的一定人数比 例© (50%)即可,假设第丿种dvd购买心张。我们考虑需要dvd最多的情况:借一次的会员在一个月的最后一天归 还,借两次的会员在一个月的最后一天第二次归还,那么对于一张碟来说 借一次的会员使得它流通了 一次,而借两次的会员使得它流通了两次,这相 当于该dvd的每月可用次数为 axlxdj+0x2xdj,对于本题目来说,q = 0.4,

14、0 = 0.6,即1.6d厂 要求一个月至 少50%有需求的会员能得到满足,即1.6dj > q. x cdj求出勺的最小值。用matlab求得置信度为0.95下的上限值分别为:q =20209 22 =101570=51142 = 2582幺=1052带入公式解得: (1, =6316d2 =3174心=1598心=807d5 = 329对于三个月的情况,想当于一个月情况的三次累积,三个月的dvd流通 次数是一个月的3倍,上限0值不变,所得公式为:4.8dj > qj x 0.95(2)代入数据计算得d严 4000d? =2011心=10134=512d5 = 209(二)问题2

15、表2中给出了会员对想看的碟的偏爱程度,因此我们可根据会员对碟 的偏好程度定义其满意度,定义如下:定义1 (个体满意度)如果单个会员作为个体租赁了该网站三张dvd 且全都是自己选中的dvd,那么其个体满意度为该个体对这三张dvd的偏爱 程度指标之和除以30所得百分比;若未能租到三张或三张中有未被个体选 中的dvd,则其满意度为0。100即 / =(工s?町)/30 i = ,1007=1100()定义2(群体满意度)所有个体满意度之和,即为e问题2的目标规划模型为:10(x)max e =工厶/=1st100/广送sy 町)/30;=i1(xx)j=i<d(i)sy=o或 iz = l,-

16、,100心l,100j = i,-aoooz =100; j =10001、模拟退火算法近似求解算法步骤: 给定起止“温度”,t = 100000 .几=1和退化速度&=0.9;模拟参数初始化醇);1000 若t>t°,转,否则算法停止,输出醇),并计算工打;>1、 1000 计算目标函数old二工1八>1 随机产生醇),若切d(o,i)no.5则正向调整醇),否则反向调整别 判断是否满足约束条件,若满足,转,否则转;1000 计算目标函数new= x7; aemhd ,若ae<0,接受新值,>1t jol t转;否则若exp(-(0,1),也接

17、受新值,t 转;否 则转算法程序见附录3。由于模拟退火算法不能在短时间给出问题2的最优解,我们尝试用别 的算法来代替模拟算法以求得相对较好的解,近似作为问题2的最优解。 这里我们选择贪婪算法,主要是因为它能在少量计算的基础上,可在正确 猜想且不用急于考虑以后的情况下,来一步步地构筑解,每一步均可建立 在局部最优解的基础上,而每一步又可扩大了部分解的规模,做出的选择 产生最大的直接收益。这对于网站经营者来说是其操作性比较强,且实用 性也比较强,因此这种算法对于本题应当是非常有效的。2、贪婪算法求解问题2中只需要考虑在dvd现有数量给定条件下要求出会员获得最大 满意度,我们暂不考虑在半个月后会员所

18、租dvd的归还与否以及后半个月 会员的租赁情况。而只考虑会员个体满意度在前半月租赁期的大小。要满 足达到最大的个体满意度,经分析,我们可以将其转化为:使得每一种dvd 的每一张都能优先满足偏爱程度高的会员。(1)算法基本思想第一次分配(针对各种dvd中偏爱程度为1所对应会员进行分配)先考虑偏爱dvd1程度为1的各个会员,若全能满足,则将dvd1进行 分配,若不够,可选取会员号排序靠前的会员,并将dvd1全部进行分配; 再分配dvd2,考虑偏爱dvd2程度为1的会员,若全能满足,则将dud2进 行分配,若不够,可选取会员号排序靠前的会员,并将dvd2全部进行分配。 这样一直类推到dvd100第二

19、次分配(针对各种dvd中偏爱程度为2所对应会员进行分配)先考虑偏爱dvd1程度为2的各个会员,若全能满足,则将第一次分配 剩余dvd1进行分配,若不够,可选取会员号排序靠前的会员,并将第一次 分配剩余dvd1全部进行分配;再分配dvd2,考虑偏爱dvd2程度为2的会 员,若全能满足,则将前一次分配剩余dvd2进行分配,若不够,可选取会 员号排序靠前的会员,并将前一次分配剩余dvd2全部进行分配。这样一直 类推到dvd100按照上面所述方法,直至第十次分配。分配结束后便可得到分配dvd 的一种预分配方案。(2) 算法步骤:对一种dvd而言,按偏爱程度从高到低分配给会员,而不考虑分配的 公平性。下

20、面用p表示会员的偏爱程度。 k = 1000 若<10,转;否则算法停止,输出醇),计算工/j为所得;戶1 按丿递增遍历c,按i递增遍历s,获得会员j目前租赁dvd的数 量 sum ; 若 cj° = k , d)>0 且 sum < 3 ,则 x(f)<-x(f)-l, 5 j0 = 1,+转。(3) 计算结果依此方法,对表2中所给100种dvd的现有数量及1000张订单数据用vc编制程序(见附录4),运行得到计算结果见表5:表5用贪婪算法求解问题2模型的计算结果(前30位会员)会员编号获得的dvd编号178114182982nnnnnn3431325080

21、904718234168815116668nnn6161920536166782681nnn8nnnnnn910175370781001014415560678511195963nnn12257314598132144788092961423434652899215132452667085166104855849717475167nnn1812174160788119256667848690201718456189912124553nnn22385557nnn2329354175819524374176nnn259236981909426822688391952722385058687828n

22、nnnnn29304455nnn3013237627098注:n表示没有得到碟片。群体满意度为£=684.951对于上表,我们发现,有几位会员没有分配到想看的dvd碟,从全部 1000名会员的分配结果来看有208人在此算法下的预分配中只能分配到一 张或两张甚至0张自己想看的碟,以致没能在月初成功租赁到dvd碟,导 致这个月都不能成功租到碟。则该网站就至少有731张dvd碟未能成功出 租。那么问题就产生了,一方面是有大量dvd可租,另一方面却大量会员 又租赁不成功。这种现象是矛盾的,因此结果不是很让人满意,需要对算 法进行改进。3、改进贪婪算法求解针对上述问题症结所在,只需对在经贪婪算

23、法运算后,未能租赁到dvd 的人重新实施分配。不过这种分配不再利用单纯的贪婪算法(否则,会限 入死循环)。对这部分人采用如下算法: r=l; 若<10,转,否则转; 按丿递增遍历巧),按,递增遍历醇),获得会员j目前租赁dvd的数 量 sum ; 若 cj° = k , x(/) > 0 k sum < 3 ,则 x(/) <- xi -1, s = 1,r<-r + 1 转; 以z递增遍历,获得会员丿目前的租赁dvd的数量$肋,若sum工3 则释放预分配会员j的dvd资源,并从原订单中分离散出此次未分配到dvd 的会员对各种dvd的喜欢程度c; 以,递

24、增遍历优先让能达到相对最大满意度且偏爱程度构成的 三位最小整数较小的会员分配dvd并登记巧); 输出sy。算法程序见附录4。计算结果见表6:表6用改进贪婪算法求解问题2模型的计算结果(前30位会员)会员编号获得的dvd编号181141828598254462nnn343132508090471841nnn51112213466686161953nnn782681nnn8nnnnnn95378100nnn10141841556085111959616366701227314150981321447880929614235289nnn15136685nnn166104855849717511314

25、7516718416078nnn1925666784869020456189nnn212254550536522385557nnn2329356775819524374176nnn2596981nnn26226895nnn27225058nnn2883482nnn2926304452558930376298nnn该算法的群体满意度为£=773. 668.从表6中我们发现,预分配中只能分配到一张或两张甚至0张自己想 看的碟的会员只有99人了,比贪婪算法的结果少了 107人,群体满意度也 比贪婪算法的高出了 86.717,且仅有304张碟未能成功出租。由此可见, 改进后的贪婪算法的效果是

26、明显的,结果也上令人满意的。(三) 问题3对于问题3,我们可以考虑用问题1的模型来决定每种dvd的购买量, 然后用问题2的模型来进行dvd的分配。我们根据表2中所有会员的订单 统计出对100种dvd的需求量,然后用问题1的模型确定出每种dvd碟的 购买量,并用问题2的模型进行分配,发现能在1个月内使全部会员看到 他们想看的dvd,自然该满意度就是最大的。然而,从网站的角度考虑,是希望用尽量少的购买量来满足95%的会员 的要求,因而可以看出用上述方法确定的购买量虽然满意度很高,但显然 购买量过大了。我们考虑任意给出一组初始购买量,在限定95%的覆盖面的条件下,逐 步向下或向上调整初始量的数值,并

27、在调整的过程中始终保持与问题2算 法中的满意度最大相同的条件,最终得到最优解。具体算法步骤如下: 给与初始每种dvd的购买量vw ( / = 1,-,1()()及一月内可使至少95% 的会员租赁到第i种dvd的最小碟数协)(心1,100 ); 取v(/)=min ( v(/),); 用问题二的分配算法对计)(心1,100)进行分配,得到一个月内 的看到了想看的dvd的会员占想看此dvd的总会员数的百分比 若p <95%,转,否则算法结束并输出v及s; 找出|v(o-m(/)| (心1,100 )中的最大者,并记录此时dvd的编号k, 然后")=以)+1,转。算法程序见附录4。为

28、了方便,我们就取表2中的dvd现有数量为初始值进行计算(实际 上,可以取任意一组数值为初始值),计算结果如下:1、每钟dvd的购买量,见表7。表7每钟dvd的购买量dvd名称123456789101112131415购买量124015222014303335252931286112dvd名称161718192021222324252627282930购买量282826313834293522296814192541dvd名称313233343536373839404142434445购买量293517403921613029148026183634dvd名称464748495051525354

29、555657585960购买量193225176340263326612228384436dvd名称616263646566676869707172737475购买量273142442270163533302040151128dvd名称767778798081828384858687888990购买量2420661128318221160213443827dvd名称919293949596979899100购买量39282415502436559402、群体满意度为£=832. 07.3、一个月能得到他想看的dvd的会员占95. 1%.若在程序中p<95%的值改为大于95%,会

30、使更多的会员得到他想看的dvd。从网站的利益出发,作为网站经营管理人员应该要考虑网站赢利的最 大化,因此,我们认为在网站的经营过程中应始终追求利润的最大化。反 映在实际经营过程中就是以最小的碟片数量实现最多的租赁次数。若z为网站规定一个月内进行分配的次数,应为偶数;且网站要求至 少翎的会员能看到第,种dvd,则相应的数学模型如下:min x(i)max 心s. t.2x0.6xx(/) +0.4x)>nt为(昭)+隠)+“1.3/-ik=2ai堺-尢"对)-兀叫0琲)-*0 屛;)+昂)_疋乜0 琲)+理一兀5 0r(o 丄)_ v(o < nx/-i,l + 可一1,2

31、 x _(丿x;? > r%x0.4xt/(/)点=1,3,.丿一1y x:? + x 兀"厂 x 0.6 x d “1,3/-ik=2,4,,i雋?+斗;)一兀wo©?+兄;)一兀wo站)+璃2-"*0%2?-兀 17 5 0琲-琲)"由于时间原因,我们未能给出该模型的解。u!、结束语1、模型的评价本文对于问题二构造出了线性规划模型,由于变量数目较大,通过计 算机编程(用模拟退火算法等)搜索得到该模型的最优解需要花费大量的 时间。显然,这不切实际。因此,需要寻求某种快速算法找到该模型的最 优解的近似解。为此,我们首先给出了贪婪算法,经实际计算后,

32、结果不 让人满意,进而对它作改进得到了改进的贪婪算法。该算法易于理解,易 于接受,且可操性强,在计算机上对给定数据可以实时得到结果,应用的 范围较广。并且还可以稍作改造就能应用到问题三。其算法的实质在寻求 在保持每步满意度最大这一条件下对1000种dvd进行分配。数据表明,将 它用于问题二和问题三得到的结果(指满意度),与服务业知名品牌市场调 查满意度相差无几。这表明该算法对于此问题的求解有很强的实用性,而 且经过简单修改便可解决类似问题,易于推广。但由于时间所限我们对其 算法在理论上的合理性、重要性探讨略显不够。2、模型的改进(1)模型建立还可以进一步更加合理性,租赁dvd的周期由半月十五

33、天转为十天或七天或更短的时间,这样网站dvd的流通速度进一步加快, 同时也可为网站带来更好的收益。(2)我们把满意度分为群体满意度和个体满意度。而群体满意度简单 的认为它是所有无区别个体满意度之和。未能考虑对于租赁dvd较为频繁 的老会员和新会员而言,为吸引住这两批客人,网站经营管理人员应格外 照顾,而他们二者满意度相对于其他会员而言应当更为优先、更为重要, 可适当授以权重,以保证网站的长远发展。因此,在模型改进时我们可给 这两批人优先考虑使他们达到最大满意度,当然在模型改进时可以对他们 的满意度付以较高的权重系数。参考文献:1 姜启源、谢金星、叶俊,数学模型(第三版)m,北京:高等教育出版社

34、,2003.2 赵静、但琦,数学建模与数学实验m,北京:高等教育出版社,2000。3 张 磊,全国知名计算机质量和服务满意度调查分析db/ol , content/200504/cc4e 15cda81 d4dfeabd6e0019235bfp7,shtm, 2005916。附录1:模拟退火算法(vc源代码)/ / 上 上 士 上 上 上 土 上 士 上 士 上 上 上 土 上 上上 上 上 上 土 上 上f r7/name:模拟退火算法/mode:高级搜索模型/date:2005-9-17/ / 上 士 上 上 上 土 上 上 上 士 上 上 上 土 上 上上上 上 土 上 上上j r7 t

35、% #tv t%7 t% #tv t%#include "iostream.h”#include "fstream.h"#include "time.h"#include “sidlib.h”#include ,math.hm /template <class type>class simulationannealarithmeticprivate:float t;止温度float to;/起温度float a;退火速度unsigned int x() 100()1 f 100;/unsigned int xi 1000100;/模

36、拟参数unsigned int c 1000100;/会员对 dvd 的偏爱矩阵unsigned int s100;float i;float 10;public:inputdate();outputdate();resolution();simulationannealarithmetico;simulatio nannealarithmetic();simulationannealarithmetic:simulation anneal arithmetic() t=0;t0=0;for(int i=0: i<1000; i+)for(int j=0; j<100; j+)xo

37、ij=xii0=o;cij=o;suj=o;simulationannealarithmetic:inputdate ()ifstream filel(hdatal.txth);for(unsigned int i=0: i<1000: i+)for(unsigned int j=0; jvloo; j+) ifilel.close();ifstream file2(mdata2.txt");for(i=0; i<100; i+) file2»si;)file2.close();t=1000000;to=1;a=0.9;simulationannealarith

38、metic:resolution ()whilc(t>t0)/产生随机变量xi srand(unsigned)time(null); while(l)for(unsigncd int i=0;i<1000;i+)while(l)int k=0;for(unsigned int j=l; j<=100; j+) 'if(unsigncd int)rand()% 100>96) xiiuj=i;k+;if(k<=3) break; /end-whileint flg=o;for(unsigned int m=0; m<100; m+)unsigned i

39、nt sum=0;for(unsigned int n=0; n<1000; n+)sum+=xlmn;if(sum>sm) flg=l;if(flg=o)break;/whilefor(unsigned int i=0; i<1000; i+)for(unsigned int j=0; jvloo; j+) if(clijuj=o)1=1+0;else i=i+xlij*(float)(l/cij);)if(i>io)for(unsigned int i=0; ivlooo; i+)for(unsisned int j=(); jvl()(): j+)xoij=xii

40、u; cout«xlijjj; cout«endl;t=t*a;else if(exp(i-io)/t)>(float)(rand()% 100)/100) for(unsigned int i=0; i<1000; i+)for(unsigned int j=(); j< 100; j+)xoij=xlij; t=t*a;1/whilc;simulationannealarithmetic:outputdate () /* for(unsigned int i=0; i<2; i+)for(unsigned int j=0: jvloo; j+)

41、cout«ciljl;*/ofstream file(mout.txtm);for(unsigned int i=0; i<1000: i+)for(unsigned int j=o; j<10(); j+) filc«xlij; file«endl;)file.close();void main()simulation anneal arithmetic *p; p=new simulation anneal arithmetic(); p->inputdate ();p->resolution (); p->outputdatc

42、();附录厶 贪心算法及改进,自动调度算法(vc源代码)/name:贪心算法及改进,口动调度算法 /mode:近似求解模型/date:2005-9-19 #include niostream.hm #include ufstream.hn #include mmath.hm #include htime.hn #include nstdlib.hnclass nearprivate:unsigned int c 1000100;/会员对 dvd 的偏爱矩阵 unsigned int s100;/dvd 数量unsigned int msll00;/dvd 授大需求量unsigned int d

43、vd100;unsigned int x 1000100;/记录会员租的 dvd 矩阵unsignedint y1000100;/记录会员第一次租的dvd矩阵 unsigned int ave 1000 100;floaulioooj;/笫一次毎个用八的满意度float iil()()01;/笫一次每个用户的满意度 unsigned int usercode1000;/用八编码记录 float a方差unsigned int flg1000;/60%会员标志unsigned int userexitl()()o;/笫一次得到 dvd 的会员 unsigned int countnum;/得到

44、dvd 的会员总数 unsigned int ord100;public:inputdate();/数据输入模块 outputdatco;/ 数据输! li 模块 resolution();求解模块 near();/数据初始化 autoadjust();/ 口动调整模块 ;near:near() for(unsigned int i=0; i<1000; i+) for(unsigned int j=0; j<100; j+)ciu=xiu=aveij=¥iu=o; sj=dvdj=ms|j=ordj=0;ii=iii=(float)0; flgi=userexiti=o

45、; usercodei=i+l;a=0; countnum=0;near:inputdate ()ifstrcam filcl(ndatal.txtn); for(unsincd int i=0; i<1000; i+) for(unsigned int j=0; j< 100; j+) filel»ciul;filel.close();ifstream file2("data2.txtu); for(i=0; i<100; i+) file2»si; dvdi=si;file2.close();ifstream file3("data

46、3.txt"); for(i=0; i<100; i+) file3.close();near:resolution()for(unsigned int i=0; i<100; i+)dvdi=si;for(i=(); i<1000; i+)for(unsigncd int j=0; j< 100; j+)xiu=yij=0;aveij|jl=0;1按偏爱程度从高到低分配给会员for(i=l; i<=10; i+)for(unsigned int m=0; m<100; m+)for(unsigned int n=0; n< 1000; n+

47、)unsigned int sum=0; for(unsigned int k=0; k<100; k+) if(xnrk>=l)sum+; if(dvdm>0&&cnm=i&&sum<3) xnirm=l;dvdm-;)没有分配到3张dvd的会员的dvd资源返回 for(i=0; i<1000; i+)unsigned cout=0: for(unsigned int j=0; j<100: j+)-if(xiu=l)cout+;if(cout!=3)for(j=0;j<100;j+)if(xiijui=i)dvdj+

48、;xij=();未分配到3张dvd的会员重新分配for(i=l; i<=8; i+)for(unsigned int m=i+l; m<=9; m+) for(unsined int n=m+l; n<=10; n+) for(unsigned int k=0; k<1000; k+)unsigned int sum=o; for(unsigned int 1=0; l<100; 1+) if(xkl=l)sum+;if(sum=0)unsigned int sums=0; for(l=(); l<10(); 1+) if(ckl=illckl=mllckl

49、=n)sums+;jif(sums=3)unsigned int goodflg=0; for(l=0; l<100; 1+) if(ckl=illckl=mllckl=n) if(dvdl-l)>10000)goodflg=l;1if(goodflg=0) for(l=0; l<100; 1+) if(ckl=illckl=mllckl=n)xkjllj=l; dvdhj-;)/第一次分配示满意度for(i=0; i<1000; i+)unsigned int sum=o; for(unsigned int j=0; j< 100; j+) if(xiljl=l

50、)aveiuj=ll-cig; sum+=avcij;elseaveilj=0;ii=(float)sum/30;/cout«ii«endl;float sum=0;for(i=0; i<!000; i+) sum+=hij;)/ cout«sum/1000«cndl;/int num=0;a=(float)0;for(i=0; i<1000; i+)a+=(ii-sum/1000)*(ii-sum/1000);/*if(ilij-0.1)<0)num+;*/cout«a«endl;for(i=0; i<1000; i+)for(unsigned int j=0; j< 100; j+)yiju=xiuj;统讣第一次得到三张的人数统计unsigned couts=0; for(i=0; i<1000; i+) unsigned cout=0;for(unsigned int j=0; jvloo; j+) if(yiu=dcout+;if(cout=3)couts+; uscrexiti=l;/cout«couts«endl;countnum=couts;随机产牛借二次dvd的会员srand(unsigned)time(null);for(i=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论