3
29
2011
37

算法初步,链表与约瑟夫环的求解

最近在研究数据结构和简单算法,为了准备某某东西嘛,就不说出来了,因为是新手,而且和也可能和我的学习方法以及悟性有关

感觉一直很颓废,写起来没有那么生动,思考的时候容易遇到瓶颈,而且我感觉算法和数据结构这种东西不是突击就可以出来的,

不过最近我又开始加班了,以后打算长期写下去,希望这个家可以长久一点,一开始本来是在本地计算机的虚拟机里搭建WP的,只是想有个稳定点的家而已。

关于链表的结构还是比较清晰的,就是类似数组类型的简单数据结构,但是在运算以及存储操作等方法上要优于数组,特别是在使用

C/CPP这样的比较接近底层的语言中,因为语言本身没有比较好的高级数据结构,不过就链表的实现来说还是很方便的,在我书写的过程中,主要遇到的困难是,链表指针的传递问题,有好几次我的指针都不知道指向了什么地方,经过相当长时间的刻苦调试终于有了进展,不过参看别人的链表结构我感觉自己的结构还是相当幼稚的,这是我今天做的总结。

下面上程序,希望自己能快点进步,能成为一名ios开发者,加油!

 

//蒙特卡洛方法求PI
//原题出自编程之美,但是算法有误,
//我的是改正过的
//但是方法可能有问题,精确度不是很好,不过还是发上来了,供我以后该进研究
//designed by YoungEr.ShEn
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
#define N 500000

double rand_num()
	{
	
		srand(time(NULL));
		double f;

		f=double((rand()/RAND_MAX));
		f/=100;
	
		return f;
	}
int main(int argc,char ** argv)
{
	int i=0;
	int caseSum=0;
	double temp1;
	double temp2;
	for(;i<N;i++)
		{
			temp1=rand_num();
			temp2=rand_num();
			if((temp1*temp1+temp2*temp2) <1)caseSum++;
		}
	double PIs;
	PIs=(double)((caseSum/N));
	PIs*=4;
	printf("number PI is %f\n",PIs);
	printf("%f\n",rand_num());
	printf("%ld\n",caseSum);
	printf("%f",RAND_MAX);



}

 

Category: 算法研究 | Tags: c/c++ 算法

Host by is-Programmer.com | Power by Chito 1.3.3 beta | Theme: Aeros 2.0 by TheBuckmaker.com