代码改变世界

随笔分类 - 12-Coding For Fun

迷人的斐波那契数

2012-04-19 00:31 by Anders Cui, 4544 阅读, 收藏, 编辑
摘要:繁殖力超强的兔子说到斐波那契数,我们自然会想到曾经有一群繁殖力超强的兔子。比萨的商人斐波那契(Fibonacci,12-13世纪,称为比萨的列奥那多)接触到阿拉伯数学后,在其著作《Liber Abaci》中,引入了这个著名的兔子问题。但如果向前追溯下去,则可以追溯到古老的印度数学。斐波那契使用了一个理想化了的兔子生长模型进行研究,并假设:第一个月初有一对刚诞生的兔子两个月之后(第三个月初)它们可以生育每月每对可生育的兔子会诞生下一对新兔子兔子永不死去从第一个月开始,兔子的数目(对)依次是:1,1,2,3,5,8。。。这样就形成了一个序列,记为{Fn},则该序列存在一个递推关系:F(n)=F(n 阅读全文

趣题一则:冯·诺依曼邻居问题

2012-04-15 00:51 by Anders Cui, 127 阅读, 收藏, 编辑
只有注册用户登录后才能阅读该文。 阅读全文

HashSet的实现(下)

2011-06-17 17:19 by Anders Cui, 6002 阅读, 收藏, 编辑
摘要:在HashSet的实现(上)中,简要介绍了散列法(hashing)的内容,并以二次探测法实现了一个简单的HashSet。在本文中,将进一步讨论散列法,尤其是GetHashCode方法的实现,最后给出完整的HashSet实现。 阅读全文

HashSet的实现(上)

2011-06-13 02:03 by Anders Cui, 13814 阅读, 收藏, 编辑
摘要:本文主要讨论了散列法和散列函数的基本概念以及解决散列冲突的两种方法:线性探测法和二次探测法,并以二次探测法简单地实现了HashSet的Hash这一部分。 阅读全文

文曲星猜数游戏的一个简单实现

2009-07-08 22:17 by Anders Cui, 1284 阅读, 收藏, 编辑
摘要:最近比较希望能做一些敏捷开发的实践,昨晚向Nick Wang请教了一下,结合自己的体会,感觉应当从单元测试开始入手,逐步了解XP的相关内容。Nick刚刚出了个小题目,感觉这是学习TDD的一个好机会。今天看到麒麟.NET的一个非TDD实现,一时手痒也尝试了一下。 阅读全文

如果说编程语言是一种宗教,你的信仰是?

2009-01-07 00:24 by Anders Cui, 5784 阅读, 收藏, 编辑
摘要:老外写的一篇文章,很有意思,可以从宗教的角度来看看各种常见语言的特点。来说说你的信仰吧:) 阅读全文

F#探险之旅(八):使用F#开发Windows应用程序

2008-12-17 22:11 by Anders Cui, 4548 阅读, 收藏, 编辑
摘要:本文主要讨论了如何使用F#开发Windows应用程序。通过分析,确定了三种主要的方法,重点讨论了如何在F#中利用VS中的窗体设计器,这会使 WinForm程序的开发简单不少。其中的一个例子是processFinder,它可以获取当前机器上的进程和应用程序信息。 阅读全文

F#中有趣的计量单位

2008-11-29 20:23 by Anders Cui, 3221 阅读, 收藏, 编辑
摘要:NASA气象卫星意外坠落,原因竟是计量单位转换这样的“小问题”。为编程语言添加对计量单位的支持可以很大程度上避免这样的错误,编程任务也变得更有趣。F#提供了对计量单位的静态检查,并且封装了国际单位制的各个单位和物理常量,另外我们也可以定义自己的单位;在单位之间进行换算也很简单;此外F#还支持计量单位的泛型。作为对NASA气象卫星的纪念,本文最后给出了一个模拟太阳系的例子 :) 阅读全文

F#探险之旅(七):在F#中进行单元测试

2008-11-18 13:42 by Anders Cui, 2520 阅读, 收藏, 编辑
摘要:本文介绍了在F#中如何使用NUnit和FsUnit进行单元测试。可以看到两者都很简单,前者简单是因为能很好地延续在C#中的方式,迁移过来不要费多大力气;后者简单是因为它接近自然语言,看起来很亲切,比如我们可以写出fruits |> should contain "apple"这样的测试代码。FsUnit值得关注,除了单元测试本身,我们还可以通过它来了解Language-Oriented Programming的相关知识。 阅读全文

推荐VS2008插件CodeRush Xpress for C#

2008-11-12 13:33 by Anders Cui, 20437 阅读, 收藏, 编辑
摘要:近期DevExpress和微软共同发布了用于VS2008的插件CodeRush Xpress for C#,它包含了Code Rush和Refactor! Pro中的一些特性。这些特性包括增强的导航、选择工具、代码创建功能以及强大的重构支持。用了CodeRush Xpress,才体会到"工欲善其事,必先利其器",它无疑会大大改善我们的开发体验,而且它是免费的,向您强烈推荐。 阅读全文

Eratosthenes筛法的F#实现

2008-11-11 12:14 by Anders Cui, 1258 阅读, 收藏, 编辑
摘要:考虑一个常见的数论问题,指定一个自然数,求出不大于该数的所有质数。Eratosthenes筛法就是解决这个问题一种简单、高效的方法。本文提供了这个筛子的C#和F#实现。 阅读全文

浅析Mandelbrot集合及其图形的绘制

2008-10-10 00:31 by Anders Cui, 20520 阅读, 收藏, 编辑
摘要:<img src="http://pic002.cnblogs.com/img/anderslly/200810/2008101000352360.jpg" class="desc_img"/>1967年,美国数学家Mandelbrot曾出这样一个著名的问题:英格兰的海岸线到底有多长?这个问题在数学上可以理解为:用折线段拟合任意不规则的连续曲线是否一定有效?这个问题的提出实际上是对以欧氏几何为核心的传统几何的挑战,这个问题也是分形几何学的发端。而Mandelbrot集合则是分形几何的经典集合,它的图形表示可以让我们认识到纯粹的数学之美。由于分形几何学知识的匮乏,本文只能给出Mandelbrot集合的定义,并以最容易理解的方式绘制出该集合。这里使用的语言是F#,而不是C#,以后还会有更多采用F#的例子 :) 阅读全文

F#系列随笔索引

2008-10-08 00:18 by Anders Cui, 7658 阅读, 收藏, 编辑
摘要:在当前的背景下,如果一门语言的广告不能雷到人,还面对C#这样成熟的语言,就真的很难引起人们的兴趣。初学F#会让人一头雾水,我希望能有一个F#教程,它能在一些简单的例子中帮我们拨开乌云,《Foundations of F#》这本书不错,不过有些繁琐、冗长。我把书中的内容整理了一下,也把在《Expert F#》或者网上其它文章的一些内容加进来,另外我还喜欢把自己想到的F#与C#的异同点给写出来,这些就是我的《F#探险之旅》。 阅读全文

从这里开始学习F#

2008-10-03 22:14 by Anders Cui, 2892 阅读, 收藏, 编辑
摘要:<img src="http://strangelights.com/fsharp/images/FSharp.gif" class="desc_img"/> Robert Pickering是《Foundations of F#》一书的作者,他同时还创建了一个关于F#的Wiki,是学习F#绝好的地方。 该Wiki目前包含了如下内容:F#编程的笔记,F#的书籍和在线杂志,F#的应用和示例,F#类库,F#的代码片段,F#方面的文章以及F#的工具,这是继hubFS之后又一个F#知识的集中地,相信F#爱好者以后的学习会更为方便! 阅读全文

F#探险之旅(二):函数式编程(中)

2008-08-31 17:44 by Anders Cui, 3113 阅读, 收藏, 编辑
摘要:接上一篇,本文继续介绍F#中的函数式编程范式,主要包含了操作符、列表、列表推导、类型推导、类型标注等概念。类型推导又称隐式类型,通常是——但不限于——函数式编程语言的特性,比如C# 3.0和VB.NET 9.0都提供了一定的支持,它使很多编程任务变得更为简单。 阅读全文

F#探险之旅(二):函数式编程(上)

2008-08-27 22:10 by Anders Cui, 4750 阅读, 收藏, 编辑
摘要:F#探险之旅的第二站,我们来看看F#中函数式编程相关的内容,这一部分内容很多,索性分为三部分。第一部分主要是关于函数式编程的最基础概念,包括标识符、值、函数、作用域、递归以及匿名函数等。 阅读全文

F#探险之旅(一):选择不同的开发方式

2008-08-21 22:19 by Anders Cui, 4898 阅读, 收藏, 编辑
摘要:知识是有时效的资产,需要定期对其进行投资,我们不妨把这个过程看作是一次新奇的旅途。本文主要是讨论开发F#程序的不同方式,可以选择轻量级的SharpDevelop、Editplus甚至Notepad,也可以选择重量级的Visual Studio。 阅读全文

F# 20分钟快速上手(二)

2008-08-10 17:05 by Anders Cui, 13869 阅读, 收藏, 编辑
摘要:在上篇文章里,我们写出了F#的第一个程序,本文我们来看一些F#语言的核心部分,包括值的不变性,模块,Tuple,柯里化,Union类型,模式匹配,Record类型,序列和集合等内容,读完此文后,希望能让您对F#有个整体的认识。 阅读全文

F# 20分钟快速上手(一)

2008-08-03 14:50 by Anders Cui, 22096 阅读, 收藏, 编辑
摘要:从Allen Lee的《从C# 3.0到F#》一文开始,感觉园子里F#正在升温。Chris Smith写了一个F#的小系列,这里翻译出来与大家分享。在本文从零开始编写我们的第一个F#程序。 阅读全文

C# 小测试(一):类成员初始化与构造函数执行的顺序

2008-07-12 20:25 by Anders Cui, 3237 阅读, 收藏, 编辑
摘要:我们在实现类的继承时,创建派生类的实例时,基类与派生类的实例字段都要进行实例化,他们的构造函数都需要调用,那执行的顺序是怎样的呢?一起来做做这个测试题吧。 阅读全文

关于阶乘的两个常见算法及一个相关面试题

2008-05-19 12:12 by Anders Cui, 10545 阅读, 收藏, 编辑
摘要:本文首先给出了阶乘的数学定义,然后说明了它的两种简单算法,最后提供了一个很有意思的与阶乘相关的面试题的思路。 阅读全文

Django是否已经达到引爆点?

2008-03-26 12:57 by Anders Cui, 711 阅读, 收藏, 编辑
摘要:Django是一个Python下的Web框架,Antonio Cangiano汇集了一些关于Django有趣的统计数据,并宣传它已经达到了一个引爆点:即所谓的已经获得足够的动力去突飞猛进的临界点。 阅读全文

在VS2005中创建项目模板来提高开发效率

2008-01-20 21:37 by Anders Cui, 8603 阅读, 收藏, 编辑
摘要:通常情况下,我们会在一段时间内,使用同一种开发工具开发结构相近的项目,比如在VS2005中开发Web应用程序,数据访问使用iBATIS.NET。对于Web项目来说,它往往包含了js、css、image等文件夹和相应文件,还有经过配置的Global.asax、web.config文件,此外还有通用的用户管理、日志等内容;使用iBATIS时,则需要包含dao.config、sqlMap.config、providers.config等文件。我们可以在项目开始时将这些文件拷贝过去。这也许不是什么大问题,但毕竟还是不方便。 项目模板和项模板可给我们带来方便,为我们省却上面的烦恼。 阅读全文

本周链接列表(2007.12.10-2007.12.16)

2007-12-17 10:30 by Anders Cui, 459 阅读, 收藏, 编辑
摘要:本期链接列表的主要内容有:ASP.NET, Reflection, GDI+等 :) 阅读全文

本周链接列表(2007.12.03-2007.12.09)

2007-12-10 11:01 by Anders Cui, 298 阅读, 收藏, 编辑
摘要:本期链接列表的主要内容有:ASP.NET, Python :) 阅读全文

增强我们的Visual Studio(更新中)

2007-10-22 22:09 by Anders Cui, 12644 阅读, 收藏, 编辑
摘要:在一篇文章《Visual Studio vs Eclipse》中,Jon Skeet对两者进行了对比。VS2005确实有其不足。还好,当前已经有了一批不错的Add-In了,适当地应用,会让我们的VS更为强大,我这里推荐了4个不错的Add-In,尤其是其中的DPack,强烈推荐。最希望的还是大家能群策群力,一起打造更好的VS IDE! 更新: 至2007-10-31, add-in列表已增加到14个,推荐Clipboard Manager。 2008-11-12,添加VS2008 add-in:CodeRush Xpress for C# 阅读全文