智慧的老鸟

一个程序员需要有一棵Gank的心,Dota能培养我。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

随笔分类 -  算法

摘要:蒙特卡罗算法是我在算法学习中最喜欢的算法之一,不知道什么原因,就是很欣赏,那种感觉就像你喜欢在雨中散步一样,没有什么能给你的,但是你享受到雨中的浪漫或者优雅。我一直觉得,像蒙特卡罗和拉斯维加斯这样的算法,在解决一些近视计算问题上,能提供给程序员很快捷和巧妙的方法。下面给出用蒙特卡洛计算圆周率的程序,很简单,但是,要说明的是它的并行算法,看《蒙特卡罗算法并行计算》#include#include#include#includeusing namespace std;#define pear 50000//扔的“黄豆”数目int isInCir(double x,double y){if ((x* 阅读全文
posted @ 2012-11-21 14:03 智慧的老鸟 阅读(659) 评论(0) 推荐(0) 编辑

摘要:计算机中,硬件和软件其实是相辅相成的,软件可以降低硬件成本,硬件可以提高速度;这个道理是硬件加速器的存在价值。而在我们的模拟环境中,完全可以用软件模拟一些可以模拟的硬件条件,比如38译码器。//////////////////////////////////////////////////////////////////////////#includeusing namespace std;int main(){char yes = 'Y';do{int a=0,b=0,c = 0;printf("input a,b,c\n");while (1){scan 阅读全文
posted @ 2012-11-07 17:26 智慧的老鸟 阅读(458) 评论(0) 推荐(0) 编辑

摘要:#include#define len 3#define max 1000using namespace std;int isSXH(int d){//d>0int temp = d;int i = 0;int darr[len] = {0};do{darr[i] = d;i++;//darr[i] =d;d /=10;}while(d != 0);int add = 0;for (i = 0;i{add += darr[i]*darr[i]*darr[i];}if (temp == add){return 1;}return 0;//不是水仙花数返回0;}int main(){//co 阅读全文
posted @ 2012-11-07 17:24 智慧的老鸟 阅读(209) 评论(0) 推荐(0) 编辑

摘要:对于求n 个实数构成的数组中最小元素的位置问题,写出你设计的具有减治思想算法的伪代码,确定其时间效率,并与该问题的蛮力算法相比较。#include#include#define len 10using namespace std;void creatArr(int arr[len])8{srand(time(NULL));for (int i=0;i{arr[i] = rand()%len;}}void printArr(int arr[len]){cout<<"数组为:"<<endl;for (int i=0;i{cout<<arr[i 阅读全文
posted @ 2012-10-26 16:29 智慧的老鸟 阅读(932) 评论(0) 推荐(0) 编辑

摘要:游戏:有3个门,门后分别是car,sheep,只有一个门是car。一个猜想着随即选取一个门,如果这个门后面是车就可以获得车,否则获得羊。很显然这样猜对车的概率是1/3。但是现在的条件是有个主持人,她知道每个门后面是什么。当你选择一个门之后,她打开一个有羊的门。问你是否改变你原来的选择?坚持原来的选择的话获得车的概率是多少,改变原来的选择的话概率又为多少。请给出解释。答案是1/3变成2/3。概率能解释;编程更直观。 阅读全文
posted @ 2012-10-26 16:20 智慧的老鸟 阅读(867) 评论(0) 推荐(0) 编辑

摘要:待证问题:二进制循环左移算法求约瑟夫问题的证明:分析:f{1,2,..k}表示k 个人1..k,从begin 序号开始向后杀,最后留下的那个人的号码f{1,2,..k};eg:f{1,2,3}表示{1,2,3}这3 个人,从1 开始,经过两轮轮杀掉其他人,剩下3.即f{1,2,3}=3;易得: {1,2,3,4}4 个人从1 开始第一被杀的人肯定是2,所以剩下{1,3,4}这个状态时刻,第一个有权利杀人的人(即begin)是3,所以对{3,4,1}进行f{1,3,4}。显然,这是一个可以递归的过程。把4->1 看成是连续的数(1=5%4)即{3,4,5%4}因此:3 个人, f{1,2, 阅读全文
posted @ 2012-10-26 16:19 智慧的老鸟 阅读(670) 评论(0) 推荐(0) 编辑