
C语言算法
建鼎呓语
嵌入式系统软件开发
展开
-
一笔画问题
一笔画问题是在6x6的棋盘上分布着若干点,从红色起点开始依次不重复地经过每个白色点,已经经过的点可以跨越过去。程序采用深度搜索,从红色点开始分别往上、往下、往左和往右迈出第一步,然后沿着当前方向,分别探测左边、前面和右边的下一结点,标记已经经过的节点为空。探测到左边有节点就左转,然后直行到该节点;如果探测到前面有节点,就直行到该节点;如果探测到右边有节点则右转,然后直行到该节点;三原创 2011-12-28 10:38:08 · 2951 阅读 · 0 评论 -
递归求解八皇后问题
八皇后问题,是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。下面的程序中,使用递归回溯搜索每种解法。#include #include #include #define swap(a, b) temp = a;原创 2011-12-27 17:02:20 · 1757 阅读 · 0 评论 -
三人三鬼过河问题
三人三鬼过河问题:三个人和三个鬼在河边,都想要到河的对岸去;河边有一只船,只能搭载两个人、或者两个鬼、或者一人一鬼;如果在岸上或者在船上,鬼的数目多于人的数目,鬼就会把人吃掉。怎样安排人和鬼的组合上船过河,才能使三个人和三个鬼都安全到河的对岸去呢?程序思路:人鬼过河问题实际上可以考虑为状态之间的迁移,或者是构建一个有向图,然后在图中寻找可行的路径。我们把当前岸边作为左岸,河的对原创 2011-12-28 11:45:22 · 17080 阅读 · 0 评论 -
华容道局面输出
下面是搜集到的华容道的局面,和C语言的文本输出。使用S表示小兵,LR表示横向大将,UD表示纵向大将,BBBB表示曹操。#include #include #include enum{ H_BORDER = 1, V_BORDER = 2, X_CORNER = 3, X_SPACER = 4, MAP_WIDTH = 4, MAP_HEIGHT = 5};v原创 2012-08-10 10:35:45 · 2867 阅读 · 0 评论 -
三阶贝塞尔曲线拟合1/2正弦
三阶贝塞尔曲线拟合1/2正弦根据贝塞尔曲线的知识,我们知道三阶贝塞尔曲线的参数方程如下,其中A、B、C、D为四个控制点坐标,P(t)表示曲线上的每一点。因为要模拟1/2正弦,所以通过P(0)和P(1)的切线方向,应该按照下图所示位置安放。其中AB为水平向左方向,DC为水平向右方向,并且线段长度|AB| = |DC| = h。那么这个问题实际上,就转换为计算出原创 2015-08-31 22:54:47 · 6102 阅读 · 0 评论 -
三阶贝塞尔曲线拟合1/4圆
三阶贝塞尔曲线拟合1/4圆根据贝塞尔曲线的知识,我们知道三阶贝塞尔曲线的参数方程如下,其中A、B、C、D为四个控制点坐标,P(t)表示曲线上的每一点。因为要模拟1/4圆,所以通过P(0)和P(1)的切线方向,应该按照下图所示位置安放。其中AB为水平方向,DC为垂直方向,并且线段长度|AB| = |DC| = h。那么这个问题实际上,就转换为计算出合理的h值,使得原创 2015-08-30 12:25:26 · 14970 阅读 · 6 评论 -
随机数独局面的生成算法
数独,在9x9的格子填入1到9的数字,识得每行、每列和每个3x3的格子里面,都包含完整不重复的1到9的九个数字。用于解题的数独,会在随机空出一些格子,解题人需要根据数字相关性,推断空格处应该填写的数字。一般而言,空的越多难度相对变大,不过空格设置不合理,就可能出现多个解都可行的情况。针对怎么生成一个数独游戏,试验了几种思路:1)从空白局面开始,每次随机选取一个空格位置,在...原创 2015-08-15 11:11:09 · 11042 阅读 · 2 评论