客户业务分为两种,第一种是申请从银行得到一笔资金,即取款或者借款。
第二种是向银行投入一笔资金,即存款或者还款。
VoidAction()银行有两个服务窗口,相应的有两个队列。
客户到达银行后先排第一个队。
queueq1;处理每个客户业务时,如果属于第一种,且申请额超出银行现存资金总额而得不到满足,则立即排入第二个队queueq2;等候,直至满足时才离开银行;
否则业务处理完后立即离开银行。
每接待完一个第二种业务的客户,则顺序检查和处理(如果可能)第二个队列中的客户,对能满足的申请者予以满足,不能满足的者重新排到第二个队列的队尾。
注意:在此检查过程中,一旦银行的资金总额少于或者等于刚才第一个队列中最后一个客户(第二种业务)被接待之前的数额,或者本次已将第二个队列检查或处理了一遍,就停止检查(因为此时已不可能还有能满足者)转而继续接待第一个队列客户。
任何时刻都只开一个窗口。
假设检查不需要时间。
营业时间结束时所有客户立即离开银行。
【基本要求】利用动态存储结构实现模拟。
【测试数据】一天营业开始时银行拥有的款额为10000(元)初始化total=10000;,营业时间为600(分钟)。
设定营业时间为早上9:00-晚上19:00其他模拟参量自定,注意测定两种极端的情况:一是两个到达事件之间的间隔时间很短,而客户的交易时间很长,另一个恰好相反,设置两个到达事件的间隔时间很长,而客户的交易时间很短。
这个有点焦虑【实现提示】事件有两类:到达银行的和离开银行。
初始时银行现存资金总额为total。
开始营业后的第一个事件是客户到达,设定一个计数器count来计算一天内客户人数,初始化为0营业时间从0到closetime。
到达事件发生时随机地设置此客户的交易时间和距下一到达事件之间的时间间隔。
每一个客户要办理的款额也是随机确定的,用负值和正值分别表示第一类和第二类业务。
个人觉得用0、1、2、3分别表示取款、借款、存款、还款比较好。
变量total,closetime以及上述两个随机量的上下界均交互地从终端读入,作为模拟参数。
两个队列和一个事件表均要用动态存储结构实现。
需考虑设置离开事件,以及如何设计第二个队列的存储结构以获得较高的效率。
注意:事件表是按时间顺序有序的。
voidgetTime();
2023/8/14 4:07:50 5KB C++
1
作者:徐子珊  本算法教材文笔顺畅,处理算法描述的两难问题有自己的特点,且具有丰富的C、C++和Java实现程序,这对读者学以致用很有帮助。
本书还有一个特点,文采甚好,如集腋成裘、化整为零、赢得舞伴等,生动形象,易于学习和理解。
本书插图也精美,如Hanoi塔图等,都给本书增色很多,让读者在兴趣中学习。
此书在应用性例题上,兼有中、英文描述题目,如环法自行车赛、牛牛玩牌、射雕英雄等例题。
这些例题来自ACM/ICPC,它们富有挑战性,可引起读者的学习兴趣。
  本书第1章~第6章按算法设计技巧分成渐增型算法、分治算法、动态规划算法、贪婪算法、回溯算法  点击此处添加图片说明和图的搜索算法。
每章针对一些经典问题给出解决问题的算法,并分析算法的时间复杂度。
这样对于初学者来说,按照算法的设计方法划分,算法思想的阐述比较集中,有利于快速入门理解算法的精髓所在。
一旦具备了算法设计的基本方法,按应用领域划分专题深入学习,读者可以结合已学的方法综合起来解决比较复杂的问题。
本书第7章的线性规划和第8章的计算几何是综合算法部分,通过学习这些内容,读者将进一步地学习更前沿的随机算法、近似算法和并行算法等现代算法设计方法和实战技巧。
  本书特色是按照算法之间逻辑关系编排学习顺序,并对每一个经典算法,都给出了完整的C/C++/Java三种主流编程语言的实现程序,是一本既能让读者清晰、轻松地理解算法思想,又能让读者编程实现算法的实用书籍。
建议读者对照本书在计算机上自己创建项目、文件,进行录入、调试程序等操作,从中体会算法思想的精髓,体验编程成功带来的乐趣。
1
车间作业调度问题(JobShopSchedulingProblem)是一个著名的NP难题,具有很强的条件约束,当问题规模较大时很难找到全局最优解。
因此作业车间调度是一类求解困难的组合优化问题。
近几年各种智能计算方法逐渐被引入到作业调度问题中,如遗传算法、模拟退火算法、启发式算法等。
如何有效的安排各零件的加工顺序将直接关系到生产效率,也是本文所要解决的问题之一。
本文提出了实现车间调度的混合遗传算法的设计方案,把遗传算法与模拟退火算法相结合,充分发挥遗传算法良好的全局搜索能力和模拟退火算法有效避免陷入局部极小的特性,通过实验验证了基于混合算法的作业车间调度方法显著提高了搜索效率,GASA改进了收敛性能。
2023/8/12 3:25:03 8.92MB 遗传算法 车间调度
1
OSWorkflow是opensymphony组织开发的一个工作流引擎,目前的版本是2.8。
OSWorkflow用纯Java语言编写,并且开放源代码。
它最大的特点就是极其的灵活。
它面向的人群是具有技术背景的软件开发人员。
OSWorkflow不提倡用可视化工具定义流程。
用户可以根据自己的实际需求,来设计出完全符合自身业务逻辑的系统,而并不需要使用复杂的代码去实现。
换句话说OSWorkflow让我们真正解放了,使得我们从底层的代码堆中爬了出来,轻松地用一套通用的引擎机制去实现各种业务流程。
OSWorkflow提供我们所有工作流OSWorkflow开发指南Version1.0October15,2007Somanyopensourceprojects.WhynotOpenyourDocuments?中可能用到的元素例如:步骤(step)、条件(conditions)、循环(loops)、分支(spilts)、合并(joins)、角色(roles)、函数(function)等等。
首先我们来谈谈步骤:步骤是工作流中很重要的概念。
如果我们把工作流比喻成一条从起点站驶向终点站的公共汽车路线,那么步骤就相当于汽车站台。
而汽车有的正在排队等候进站,有的还没有进站,有的刚出站,这样就形成了所谓的“已完成”、“正在处理”、“已添加至处理队列”、“未处理”等状态。
另外一个重要的概念就是动作,动作就是工作流中每一步骤中"需要处理的事情",每一个动作执行完毕以后都有一个结果。
公共汽车停站下客就好比一个动作,动作完成以后,开向下一站,或者加油,或者返程等等就是一个结果。
当然,实际上的工作流远比这辆汽车来的复杂,它涉及到的结果还包括原地踏步停留在同一步骤,或者是流转到另外的步骤中去,或者是流转到一个分支中去,或者汇集到一个合并中等。
如果动作被设置成为auto,那么只要触发器满足条件或者有来自外部的事件工作流便可自动执行。
在许多流程中,如果遇到并行处理某些事情,这就是分支。
分支一般是指并行处理多件事情而没有先后顺序。
若有一条分支进行了回退处理,整个流程都将回退。
与之相对的,合并就是把几条符合条件的分支聚合起来,使得事情变成"殊途同归"。
这也是非常常见的流程,同时也是最复杂的一种流程。
在步骤、动作和结果中都提供了函数功能,函数按执行的先后时机可分为pre-functions和post-functions。
顾名思义,pre-functions就是在事情发生之前执行的,而post-functions就是在事情发生以后执行的。
验证器是用来验证用户输入的数据是否合法的。
它也可以被应用在步骤,动作或结果中。
动作的执行结果可以是有条件的(conditional)也可以是无条件的(unconditional)。
对于有条件结果,可以允许有多个条件。
引擎将首先检查是否有满足的条件,它会逐一进行检查,直到符合的条件被找到才能执行。
如果没有一个条件被满足,那么最终引擎将产生无条件结果。
在每个步骤中调用工作流的人被称之为调用者(caller),而每个步骤都也会有一个所有者(owner),以代表在当前步骤中负责执行动作的角色或用户。
当前用户在执行当前步骤的时候,这些步骤被保留在当前表中(current),而一旦步骤被执行完毕,引擎会马上将这个当前步骤从当前表中移到历史表中(history)。
5OSWorkfow的高级特性有发送邮件,注册器功能,通用动作和全局动作,触发器和定时器等等,以下会一一讲解。
2023/8/8 23:12:50 624KB OSWorkflow-开发指南
1
-------第一章:千锋python基础千锋python基础教程:1、第一个python程序与数据存储'千锋python基础教程:2、print&input;与变量和运算符'千锋python基础教程:3、字符串与循环中的while'千锋python基础教程:4、布尔&list;与条件循环语句与trutle''千锋python基础教程:5、元组&字符串&字典'千锋python基础教程:6、函数基础'千锋python基础教程:7、装饰器&偏函数与作用域与异常处理与文件读写'千锋python基础教程:8、os与窗口控制与内存修改与语言第二章前端基础1、html&css;基础2、html&css;提升3、JavaScript基础4、JavaScript提升5、JavaScript进阶与轮播和飞机大战坦克6、JQuery基础7、JQuery提升8、H5C3基础第三章Django1、Django基本流程走通2、Django中的模型3、Django中的视图4、Django中的模板5、Django的高级使用6、Django爱鲜蜂项目第一天7、Django爱鲜蜂项目第二天8、Django爱鲜蜂项目第三天9、Git的使用第四章Tornado1、走通Tornado基础流程2、请求与响应3、模板和数据库以及接口的调用顺序4、应用安全5、同步与异步+使用WebSocket实现在线聊天
2023/8/8 17:17:40 1KB 千峰python
1
激光喷丸强化技术是一种新型的材料表面改性技术相比于传统喷丸强化技术,具有明显的优势。
采用试验与有限元分析相结合的方法,探讨了在一定冲击顺序下,多点激光喷丸强化处理后紧固孔周围残余应力的分布情况。
结果表明,通过多个直径为2.6mm光斑的组合能形成一个直径近似为6mm的较大圆形冲击区域,可用来替代大直径光斑进行冲击强化。
在多点激光喷丸强化过程中,由于多个光斑叠加,导致冲击区域的表面残余压应力幅值由第一点冲击后的134MPa增加到冲击结束后的254MPa,冲击区域变形深度也逐渐增大到26.6μm。
在冲击区域钻孔后,紧固孔孔口边缘处的最大残余压应力值明显减小。
模拟值与实验值吻合较好。
2023/8/7 17:21:38 10.56MB 激光光学 紧固孔 多点激光 残余应力
1
仿真模拟银行家算法对死锁的避免。
对于进程死锁的避免问题,分为两种状态:安全状态和非安全状态。
在避免死锁的方法中,允许进程动态地申请资源分配之前,应先计算此次资源分配的安全性。
若此次分配不会导致系统进入不安全状态,则将资源分配给进程;
否则,令进程等待。
所谓安全状态是指系统能按某种进程顺序,来为每个进程pi分配所需的资源,直至满足每个进程对资源的最大需求,使每个进程都可顺利地完成。
如果系统无法找到这样一个序列,则系统处于不安全状态。
只要系统处于安全状态,系统便可避免进入死锁状态。
因此避免死锁的实质在于:系统在进行资源分配时,如何使系统不进入不安全状态。
银行家算法就是一种最有代表性的避免死锁的算法。
2023/8/7 15:21:24 4.83MB 银行家算法 java 界面 操作系统
1
拜占庭容错状态机复制(BFT)协议是一种复制协议,它容忍少量副本的任意故障。
但现有的BFT协议在故障发生时不能提供可接受的性能。
这是由于所有现有的针对高吞吐量的BFT协议都使用了一个称为主副本primary的特殊副本,它向其他副本指示应该处理请求的顺序。
这个主程序可以是恶意的,在不被正确的副本检测的情况下降低系统的性能。
2023/8/6 5:33:47 447KB RBFT 多实例化 BFT 共识
1
1.设字符集为字符和数字的集合,字符的顺序为A,B,C,…,Z,0,1,2,…,9,请将下列字符串按字典顺序排列、存储:PAB,5C,PABC,CXY,CRSI,7,B899,B9,并分析可以采取的存储方案
2023/8/5 12:29:11 1KB 作业
1
在当今信息爆炸时代,如何采用有效的数据压缩技术节省数据文件的存储空间和计算机网络的传送时间已越来越引起人们的重视,哈夫曼正是一种应用广泛且非常有效的数据压缩技术。
哈夫曼编码的应用很广泛,利用哈夫曼树求得用于通信的二进制编码称为哈夫曼编码。
树中从根到每一个叶子都有一条路径,对路径上的各分支约定:指向左子树的分支表示“0”码,指向右子树的分支表示“1”码,取每条路径上的“0”或“1”的序列作为和各叶子对应的字符的编码,这就是哈夫曼编码。
而与之相反的过程就称为译码。
本文主要完成哈夫曼树的建立、哈夫曼编码和译码的功能。
我们主要运用的数据结构是哈夫曼结点结构和编码结构,采用顺序链表形式存储。
整体思路清晰明了,算法通俗易懂,通过调试运行,执行结果真确。
2023/8/4 16:55:47 160KB 哈夫曼;编码;译码;
1
共 757 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡