01 2014 档案
摘要:通过组合子问题来解决问题,各个子问题不独立,子问题包含公共子问题,每个子问题求解一次将结果保存在表中1:描述最优解结构2:定义递归的最优解3:自底向上求解最优解的值4:根据每步的计算结果构造最优解适用动态规划的两个基本要素:1:最优子结构:当问题最优解中包含子问题的最优解2:重叠子问题我们令fi[j]为底盘到Si,j的最优解i=0,1 j=1....n问题最优解:f* = min(f1[n]+x1,f2[n]+x2)f1[j] = min(f1[j-1]+a1,j-1,f2[j-1]+t2,j-1+a2,j-1) 2<=j<=nf1[1] = e1 + a11f2[j] = min
阅读全文
摘要:通过CAS操作免锁设计:CAS原子 操作(Compare & Set):包含三个操作数,内存值V、旧的预期值 oldval、要修改的新值newval,当且仅当内存V中的值和旧值oldval相同时,将内存V修改为newval。数组队列是一个循环数组,队列少用一个元素,当头等于尾标示队空,尾加1等于头标...
阅读全文
摘要:通过CAS操作免锁设计:CAS原子 操作(Compare & Set):包含三个操作数,内存值V、旧的预期值 oldval、要修改的新值newval,当且仅当内存V中的值和旧值oldval相同时,将内存V修改为newval。数组队列是一个循环数组,队列少用一个元素,当头等于尾标示队空,尾加1等于头标示队满。数组的元素用EMPTY(无数据,标示可以入队)和FULL(有数据,标示可以出队)标记指示,数组一开始全部初始化成 EMPTY标示空队列。EnQue 操作:如果当前队尾位置为EMPTY,标示线程可以在当前位置入队,通过CAS原子操作把该位置设置为FULL,避免其它线程操作这个位置,操作
阅读全文
摘要:编程之美(2-5)解法2:import randomdef partion(L): div = L[random.choice(range(len(L)))] L0 = [] L1 = [] for value in L: if value >= div: L1.append(value) else: L0.append(value) return (L0,L1)def KBig(k,L): if len(L) k: return KBig(k,L1) else: ...
阅读全文
摘要:软件系统中常见的资源有内存、文件句柄、数据库会话、线程、服务等,资源管理是资源使用者对资源进行有效控制的过程。资源管理的设计往往影响软件的非功能性需求:性能:软件系统中操作往往涉及很多资源,如何保证资源可用、避免浪费、高效获取。可扩展:如何设计资源管理架构保证向上、向下兼容。可预测:如何保证资源操作的时间是可以预期的。灵活性:如何设计保证系统易于定制和配置。稳定性:如何设计保证资源的频繁操作不会导致系统的不稳定。一致性:如何设计保证系统处于一致的状态。软件系统的设计往往需要考虑以上多个方面,而某些方面本身是互相矛盾的,比如灵活性和性能本身可能冲突(分层架构设计),针对实际的问题在不同的影响之间
阅读全文
摘要:编程之美(3-3)许多程序会大量使用字符串。对于不同的字符串,我们希望能够有办法判断其相似程度。我们定义了一套操作方法来把两个不相同的字符串变得相同,具体的操作方法为:1. 修改一个字符 (如 把“a”替换为“b”)。2. 增加一个字符 (如把“abdd”变为“aebdd”)。3. 删除一个字符(如把“travelling”变为“traveling”)。比如,对于“abcdefg”和“abcdef”两个字符串来说,我们认为可以通过增加/减少一个“g”的方式来达到目的。上面的两种方案,都仅需要一次操作。把这个操作所需要的次数定义为两个字符串的距离,而相似度等于“距离+1”的倒数。也就是说,“ab
阅读全文

浙公网安备 33010602011771号