算法
文章平均质量分 74
wencheng2998
这个作者很懒,什么都没留下…
展开
-
麻将胡牌函数
网上开源的麻将的代码比较少,本文主要介绍一个麻将的胡牌的算法。这个麻将系统中1个麻将用一个已经封装好了的类Card来表示,Card有两个属性:Type和Num。Type表示麻将的种类(条、万、筒),Num表示某一类麻将牌面的大小。Win函数(胡牌函数)主要包含七对 和 "3,3,3,3,2"这两种普通的种类,其中 "3,3,3,3,2"主要是通过递归算法来实现。 bool Win (C原创 2010-04-05 16:12:00 · 4641 阅读 · 1 评论 -
8皇后问题-回溯方法
八皇后问题是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上. 问题分析: 第一步 定义问题的解空间 这个问题解空间就是8个皇后在棋盘中的位置. 第二步 定义解空间的结构 可以使用8*8的数组,但由于任意两个皇后都不能在同行,我们可以用数组下标表示 行,数组的值来表示皇后放的列,故可以简化为一个以维数组x[9]。 第三步 以深度优先的方式搜索解空间,并在搜索过程转载 2010-10-23 12:09:00 · 1331 阅读 · 0 评论 -
C++全排列递归实现
<br /> 设计一个程序生成n个元素{r1,r2,…,rn}的全排列。如n=3时,输出为:r1r2r3,r3r2r1,r1r3r2,r2r1r3,r2r3r1,r3r1r2。<br /> <br />思路如下:<br />全排列是将一组数按一定顺序进行排列,如果这组数有n个,那么全排列数为n!个。现以{1, 2, 3, 4, 5}为例说明如何编写全排列的递归算法。<br />1、首先看最后两个数4, 5。 它们的全排列为4 5和5 4, 即以4开头的5的全排列和以5开头的4的全排列。由于一个数的全排列就是原创 2010-10-28 10:56:00 · 30318 阅读 · 8 评论