摘要: 【附加题】由结对编程想到的——关于电梯调度Interface的改进关于用户外请求的处理我们知道,用户对一个电梯的请求分为两种:内请求(Destination Request)与外请求(Direction Request),在Real Scenario中,对同一层的内请求与外请求大多数情况下只会发生一次,比如,有5个人在一层等上行电梯,他们之中只会有一个人(很可能是最先到的那个)按上行请求的按钮,其他人看到按钮亮后,就不会再按了。同样,同一楼层的内请求也很可能只有一次,即使有多个人要到这个楼层。而测试程序认为每个Passenger都要向Scheduler提交请求,这样,Scheduler就能够判 阅读全文
posted @ 2012-10-23 22:29 yin@buaa 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 由结对编程想到的——关于Information Hiding,interface design, loose coupling关于Information HidingInformation hiding is part of the foundation of both structured design and object-oriented design. In structured design, the notion of “black boxes” comes from information hiding. In object-oriented design, it gives r 阅读全文
posted @ 2012-10-23 21:55 yin@buaa 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 使用visual studio 2012内置的performance analysis tool对编译得到的wordcounter.exe文件进行cpu采样分析。测试数据为大小为92.4mb的文件夹,得到采样图:可以发现,耗时最长的函数分别为String.SplitInternal(),String.ToLower(),JIT_MonReliableEnter(线程得到锁)以及字典类的findEntry()操作,让人意外的是,加锁操作耗时竟然大于字典类操作....分词操作耗时最长,对于此处的优化,可以考虑采用自己的split函数实现。下面考虑调整分词统计线程的数目,看看不同的线程数对结果有何影 阅读全文
posted @ 2012-10-11 00:37 yin@buaa 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 由于选课关系,没有去听第一次软工课,接到individual project要求后,我大致浏览了下,感觉运用C# .NetFramework完成不是十分困难,但是,若要保证高效率,则需要在初期设计上下较大功夫。 考虑到问题的特点,我准备运用多线程手段实现,初步设想为Productor-Consumer模式,若干文件扫描线程(FileThreadScanner)作为生产者,将扫描到的文件通过并发队列(concurrent job queue)送入若干文件读取与分词计数线程(wordCounterThread),若干计数线程通过并发访问一个Dictionary类实现计数统计,计数规则根据需求... 阅读全文
posted @ 2012-10-10 23:40 yin@buaa 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 泊松分布【问题描述】泊松分布是一种常用的离散型概率分布,数学期望为m的泊松分布的分布函数定义如下:P(m, k) = mk* e-m/k! (k = 0, 1, 2, 3,…)对于给定的m和k (0<m<2000, 0<= k < 2500),计算其概率,以科学格式输出,保留小数点后6位有效数字。可以使用数学库函数,误差不超过0.000001。【输入形式】输入文件为当前目录下的poisson.in。 文件中包含两个数字,分别为m,k的值。【输出形式】输出文件为当前目录下的poisson.out。 文件中输出泊松分布的值,值以科学格式输出,保留小数点后6位有效数字。【输入 阅读全文
posted @ 2012-03-11 17:35 yin@buaa 阅读(666) 评论(0) 推荐(0) 编辑