有一段时间没学习算法了,最近在学习一些常见的算法,约瑟夫问题是这样的:
15个教徒与15个非教徒在深海遇险,必须将一半的人投入大海,其余的人才能幸免于难,于是想到一个方法,30个人围成一圈,从第一个人开始依次报数,每数到第九个人就将他扔入大海,如此循环直到余15个人为止,问怎么样排法,才能使每次投入大海的都是非教徒?
有一段时间没学习算法了,最近在学习一些常见的算法,约瑟夫问题是这样的:
15个教徒与15个非教徒在深海遇险,必须将一半的人投入大海,其余的人才能幸免于难,于是想到一个方法,30个人围成一圈,从第一个人开始依次报数,每数到第九个人就将他扔入大海,如此循环直到余15个人为止,问怎么样排法,才能使每次投入大海的都是非教徒?
说到wpf,我之前以为它会很难,不过学了一点知识之后,我觉得和winform差不多,最大的差别就是wpf前台布局是使用相当于XML的语言来编写的,不过学了一下也就懂了。
下面就是练习的两个简单的例子:
第1步:创建接口
namespace WCF.Interface { //[ServiceContract(CallbackContract=typeof(ICallback))]//回调接口(全双工) [ServiceContract] public interface ICalculator { [OperationContract] double Add(double x, double y); } }
测试用sql server数据库保存图片或者其他小文件。
文件流字段用varbinary类型。
添加:2013-12-25
更新:2013-12-26 新增分页功能。
jQuery.lazyloading.js的作用/加载过程/原理/设计思路:
1、刚加载页面时只加载html,不加载图片,图片的src为空,把真实的图片路径放到data-original属性中,页面加载速度变快;
2、在页面加载完成之后,js初始化,把有data-original属性的图片再加一个<div></div>在外面,再创建一个隐藏的<img />标签,并且根据原图片的大小和位置计算loading图片的位置,把loading图片显示在中间;
3、判断window的scroll事件(滚动条变化),判断图片在不在可视区域内,如果在可视区域内,那么执行第4步,否则什么也不做。
4、判断图片的src与data-original是不是相同,如果不相同(说明还没有加载),执行第5步,否则什么也不做。
5、把图片的data-original赋值给隐藏的<img />标签的src,当隐藏的图片完全加载好之后(完成后会执行它的.load()事件),再把隐藏图片的src赋值给原图片的src(原因:保证loading图片消失后目标图片立即显示,如果一开始把data-original赋值给图片的src,那么还没加载完就会显示图片,网页中图片是一截一截显示的,非常难看).
我服务器上文件业务上只能下载一次,下载了之后就不能下载了,大文件或网速不好时,可能服务端文件流发送完了,客户端还没下载完,导致下载失败,
那么最好的办法就是:在续传时不判断(If-Range,或If-Match 不为空时不判断,仍然发送对应的文件流)就行了,这样有一个漏洞,就是一个文件没下载完时,可以同时下载很多次,但是没办法,客户使用浏览器下载不好控制(如果记录用户开始下载的次数,逻辑上也不行—他可以下载到一半,然后时间不够不下载了,下次再重新下载,这在业务上也是允许他没下载完时重新下载的)。
.net code:
public void ValidateCode() { // 在此处放置用户代码以初始化页面 string vnum; vnum = GetByRndNum(6); Response.ClearContent(); //需要输出图象信息 要修改HTTP头 Response.ContentType = "image/jpeg"; CreateValidateCode(vnum); } private void CreateValidateCode(string vnum) { Bitmap Img = null; Graphics g = null; Random random = new Random(); int gheight = vnum.Length * 15; Img = new Bitmap(gheight, 24); g = Graphics.FromImage(Img);
可能是先装了vs2010,它会装部分与sql2008相关的东西,之后再装sql2008或sql2008r2版本,就可能会出错装不了。。
文件信息:Windows 7 简体中文旗舰版 x86 (32位 MSDN RTM正式版)