Algorithm
文章平均质量分 56
晨星
熟练掌握C++程序设计语言,酷爱读书。
展开
-
递归-回溯法求解8皇后问题(C)
无意中翻出了N年前写的递归-回溯法求解8皇后问题,干粹塞到博客中吧。#include #include #include #define QUEENS 8 // 记录解的序号的全局变量。int iCount = 0; // 记录皇后在各列上的放置位置的全局数组。int Site[QUEENS]; // 递归求解的函数。void Queen原创 2010-05-18 17:29:00 · 4145 阅读 · 1 评论 -
蒙特卡罗算法计算圆周率PI(C++)
蒙特卡罗(Monte Carlo)算法计算圆周率的主要思想:给定边长为R的正方形,画其内切圆,然后在正方形内随机打点,设点落在圆内的概为P,则根据概率学原理:P = 圆面积 / 正方形面积 = PI * R * R / 2R * 2R = PI / 4。即 PI=4P。这样,当随机打点足够多时,统计出来的概率就非常接近于PI的四分之一了。#include #include原创 2010-04-27 09:33:00 · 17570 阅读 · 5 评论 -
精确计算100的阶乘(C++)
#include #include using namespace std;void calc(vector& v);void print_result(const vector& v);int main() { vector v; calc(v); print_result(v); return 0;}void calc(vecto原创 2010-04-23 16:37:00 · 5503 阅读 · 2 评论 -
两个古老问题的递归算法。
1. 全排列思路1:递归分治(基于交换)#include void perm(int* a, int start, int end);void swap(int& m, int& n);void output(const int* a, int size);int main() { int a[5] = {1, 2, 3, 4, 5}; perm(a, 0,原创 2011-08-31 17:45:22 · 2458 阅读 · 0 评论