随笔分类 -  C#

摘要:在推荐系统众多方法中,基于用户的协同过滤推荐算法是最早诞生的,原理也较为简单。该算法1992年提出并用于邮件过滤系统,一直到2000年,该算法都是推荐系统领域最著名的算法。 本文简单介绍基于用户的协同过滤算法思想以及原理,最后基于该算法实现园友的推荐,即根据你关注的人,为你推荐博客园中其他你有可能感兴趣的人... 阅读全文
posted @ 2015-04-30 01:55 Create Chen 阅读(55726) 评论(22) 推荐(13) 编辑
摘要:PageRank 通过网页与网页之间的链接关系计算各网页权重,一般权重高的网页特点是:链接向它的网页数量多、链向它的网页其权重也较高。PageRank 就是通过这样的连接关系,一轮轮迭代计算后得出各网页的权重。 思路拓展一下,其实人与人之间也是连接着的,在社会的人际关系网中,每个人的社会地位和身价也... 阅读全文
posted @ 2015-04-27 01:29 Create Chen 阅读(5393) 评论(12) 推荐(15) 编辑
摘要:先用C#写好类型,然后自动生成标准格式的XSD。支持Class和Enum类型的设计;支持基元类型、自定义类型、泛型列表、自定义类型数组等属性;支持自定义类型之间的依赖关系;支持契约分组(指定Request/Response分到同一个xsd文件);支持契约汇总(对于自定义类型,最终体现在一个汇总xsd文件中,并自动引用其它xsd文件)... 阅读全文
posted @ 2015-04-23 20:15 Create Chen 阅读(3146) 评论(8) 推荐(3) 编辑
摘要:一共4个数字,共需要3个运算符,可以构造一个二叉树,没有子节点的节点的为值,有叶子节点的为运算符例如数字{1, 2, 3, 4},其中一种解的二叉树形式如下所示:因此可以遍历所有二叉树可能的形式,4个数的全排列,从4种运算符中挑选3种运算符(运算符可以重复)核心步骤1:需要遍历所有二叉树的可能... 阅读全文
posted @ 2014-10-15 22:34 Create Chen 阅读(5355) 评论(2) 推荐(5) 编辑
摘要:BEncoding是BitTorrent用在传输数据结构的编码方式,我们最熟悉的“种子”文件,它里面的元数据就是 Bencode 过的字典表。虽然比用纯二进制编码效率低,但由于结构简单而且不受字节存储顺序影响(所有数字以十进制编码,不存在大端小端的问题)——这对于跨平台性非常重要。而且具有较好的灵活性,即使存在故障的字典键,只要将其忽略并更换新的就能... 阅读全文
posted @ 2013-10-01 13:07 Create Chen 阅读(9853) 评论(7) 推荐(3) 编辑
摘要:连接数据库是程序员经常要做的事情, 通常情况下, 需要连接SQL Server中的哪个数据库是已知的, 用户在输入SQL Server的服务器IP、用户名、密码和数据库名字后, 如果所有信息输入正确, 就可以建立连接了. 让用户尽量少打字 每次让用户输入这么多信息的确很糟糕, 可以改进一下设计: 服务器IP和用户名可以存放在配置文件里面, 初始化的时候默认加载到... 阅读全文
posted @ 2013-04-13 14:36 Create Chen 阅读(1716) 评论(0) 推荐(0) 编辑
摘要:Google 图片搜索功能 在谷歌图片搜索中, 用户可以上传一张图片, 谷歌显示因特网中与此图片相同或者相似的图片. 比如我上传一张照片试试效果:原理讲解 参考Neal Krawetz博士的这篇文章, 实现这种功能的关键技术叫做"感知哈希算法"(Perceptual hash algorithm)... 阅读全文
posted @ 2012-07-12 14:12 Create Chen 阅读(55143) 评论(75) 推荐(43) 编辑
摘要:昨晚看到一个帖子, 说的是三行代码实现快速排序, 虽说在LINQ技术下, 三行代码是可以将快速排序的思路很直白明了的呈现出来, 这是函数式编程的优点. 看到这段代码里三个Where, 我心里不免有些疑问, Where不就枚举了整个链表了么, 这样做还是所谓的"Quick Sort"吗... 阅读全文
posted @ 2011-08-27 17:27 Create Chen 阅读(2167) 评论(2) 推荐(2) 编辑
摘要:问题是这样的: 有一些离散的点, 在坐标系中把它们拟合成一条曲线, 其中有一段看上去很像是直线, 现在要求出这段"直线"的起始坐标和结束坐标, 并把这条线的方程求出来... 阅读全文
posted @ 2011-08-23 01:56 Create Chen 阅读(4952) 评论(9) 推荐(4) 编辑
摘要:比较喜欢第二种方法, 第二种方法获取了目录下每个文件的所有信息. String path = @"X:\xxx\xxx";//第一种方法var files = Directory.GetFiles(path, "*.txt"); foreach (var file in files) Console.WriteLine(file);//第二种方法DirectoryInfo folder = new DirectoryInfo(path); foreach (Fi... 阅读全文
posted @ 2011-07-12 23:40 Create Chen 阅读(104345) 评论(4) 推荐(13) 编辑
摘要:寻路算法不止 A* 这一种, 还有递归, 非递归, 广度优先, 深度优先, 使用堆栈等等, 有兴趣的可以研究研究. 如图所示简易地图, 其中绿色方块的是起点 (用 A 表示), 中间蓝色的是障碍物, 红色的方块(用 B 表示)是目的地. 为了可以用一个二维数组来表示地图, 我们将地图划分成一个个的小方块... 阅读全文
posted @ 2011-05-26 15:57 Create Chen 阅读(120034) 评论(54) 推荐(28) 编辑
摘要:线程将 CPU 进行虚拟化后变成一个个的逻辑 CPU, 而物理 CPU 只有1个(多核CPU则有多个CPU), 一个 CPU 同时只能做一件事. 在任何时候, Windows 只将一个线程分配给一个 CPU, 那个线程允许运行一个"时间片", 一旦时间片到期, Windows 就上下文切换到另一个线程, 每次上下文切换都执行以下操作... 阅读全文
posted @ 2011-05-22 14:57 Create Chen 阅读(3260) 评论(7) 推荐(7) 编辑
摘要:服务端, 声明ServerSocket, 绑定(Bind)一个IP并指定这个IP的通信端口, 比如是127.0.0.1:9050, ServerSocket可以监听来自多个IP发送的连接请求, 监听(Listen)方法的参数可以设置允许的最多连接请求个数. 然后调用异步接受请求的方法(BeginAccept), 如果接受到某个客户端发来连接请求, 这时定义一个新的CommunicateSocket专门负责与这个客户端通信. 然后可以通过CommunicateSocket.BeginSend()方法给客户端发送数据, CommunicateSocket.BeginReceive()可以接收客户端发来的数据... 阅读全文
posted @ 2011-05-03 16:12 Create Chen 阅读(19607) 评论(40) 推荐(30) 编辑
摘要:C#2.0出现了匿名方法, 这在一定程度上节省了我们维护代码上下文的精力, 也不需要思考为某个方法取什么名字比较适合. 在FCL的一些方法中要求传入一个Delegate类型的参数, 比如Control.Invoke或者Control.BeginInvoke方法... 阅读全文
posted @ 2011-04-30 17:15 Create Chen 阅读(6890) 评论(4) 推荐(6) 编辑
摘要:一种经常发生的装箱 Int32 i = 100;Console.WriteLine("The number is: " + i); 通过VS SDK Tools里的IL DASM工具看看产生的IL代码... 阅读全文
posted @ 2011-04-11 14:45 Create Chen 阅读(1259) 评论(3) 推荐(3) 编辑
摘要:几个月前做的一个软件里想添加一个天气预报功能, 也就是利用了一下Google Weather的接口: http://www.google.com/ig/api?hl=zh-cn&weather=某某...不忘书中所讲: 耗时操作, 且非计算密集型任务, 最好使用异步方法. 根据Anders Hejlsberg的视频中演示的那样, 我写出下面一段代码, 也是很多人拿来演示异步的经典写法... 阅读全文
posted @ 2011-04-04 19:30 Create Chen 阅读(4204) 评论(10) 推荐(5) 编辑
摘要:实际中有时需要对数据进行分析, 最近就遇到了这样一个情况: 有一系列横坐标是时间, 纵坐标是记录值的一些数据, 但横坐标却不是等距记录的. 就是说在第一分钟记录一次, 第二分钟记录一次, 第四分钟记... 阅读全文
posted @ 2011-03-12 09:49 Create Chen 阅读(8547) 评论(1) 推荐(3) 编辑
摘要:分部方法那些方法原型或定义都是在分部类的声明中指定, 但是没有在该分部类的相同声明中提供方法的具体实现方法. 一般情况下, 在相同分部类中的其它任何声明中都没有对这个方法的任何实现... 阅读全文
posted @ 2011-02-21 21:08 Create Chen 阅读(1206) 评论(12) 推荐(0) 编辑
摘要:"扩展方法"是一个静态类的静态方法, 我们可以像调用其它类实例的方法那样来调用扩展方法. 扩展方法的声明和调用 例如我想给string类型添加一个ToInt32的静态方法, 把string类型变成Int32类型: 阅读全文
posted @ 2011-02-21 19:26 Create Chen 阅读(1182) 评论(3) 推荐(2) 编辑
摘要:var是初始化一个匿名类型对象的专用关键字, 如果结合var和匿名类型, 在C#3.0中初始化一个匿名类型的对象是十分有个性的, 这样的初始化方法让当时刚接触C#的我一直摸不清头脑, 例如下面这个例子... 阅读全文
posted @ 2011-02-21 17:04 Create Chen 阅读(2197) 评论(12) 推荐(4) 编辑