大数的阶乘算法

// 目前我看到最短,速度最快的大整数阶乘纯C代码实现,如果有兴趣可以自己算算100000!// 原代码我只调整了下格式,想计算100000以上阶乘的请自己修改N的数值。#include <stdio.h>#define N 100000int n;int main(){ l: while(scanf("%d",&amp;n) != -1) { int s[N]={1},t=2,a=0,b=0,m=0; if(n<2) { puts("1"); goto l; }...
2010-08-09 01:21 | 阅读 1164 次 | 评论 0 条

从字符串中提取数值( 包括浮点格式数据)

// 目的:从字符串中提取数值( 包括浮点格式数据)#include <stdio.h>#include <ctype.h>#include <math.h>#include <malloc.h>// 如果是小数点则必须保证这个位置的前面和后面中有有一个数字// 如果是负号则要求// 数据格式的限制(简化操作)// 必须保证是符号开始的或者数字开始的制,如果是负号,则后面一定是数字// 一直查询到非数字和小数点才结束int process(char *str,double *data){ int row = 0 ; for(int i=0;*(str+i)!='\0';i++...
2010-08-08 11:07 | 阅读 1430 次 | 评论 0 条

fft变址算法实现

#include <iostream>#include <bitset>using namespace std;#define M 4#define N (1<<M)/*基2变址运算*/void switchadr2(int x[],int len){ int temp; int i,j,k; for(j=0,i=0;i<len-1;i++) { if(i<j) { temp=x[j]; x[j]=x[i]; x[i]=temp ; // printf("%d<-->%d\n",i,j); } ...
2010-05-28 21:17 | 阅读 1909 次 | 评论 0 条

算法的威力:程序员用台式机打破超级计算机保持的世界记录

算法的威力:程序员用台式机打破超级计算机保持的世界记录 20100109 这 篇文章来源于程序员网站,CSDN.NET,感谢文章作者,对于这个站点,从它诞生之日起,一直关注它,用它,订阅了它的所有杂志,及时了解与解读相关动 态,理论与实践相结合作研究与开发,并与教学过程有机结合,个人认为网站与杂志都是不错的,它关注IT团队的各种实践角色。一篇英文报道:Pi buster: French sof...
2010-01-12 11:11 | 阅读 2324 次 | 评论 2 条

MATLAB 工具包地址

http://www-stat.stanford.edu/~donoho/software.html 有MATLAB 工具包,比如常用的小波包
2008-11-11 12:58 | 阅读 4235 次 | 评论 0 条

由1、2、5三个数(个数不限)相加等于1000,共有多少种情况?

直觉:for(i=0;i<=500;i++) for(j=0;j<=200;j++) if((i*2+j*5)<=1000)count++;优化:一般化一下, 设求的和为n 枚举5的个数就行了 设i个5, 则剩下的n - 5 * i 由2和1组成的种数为floor((n - 5 * i) / 2) for (i = 0; i <= 200; i++) count+=(1000-5*i)/2+1; 讲讲,3=1+1+1=1+2,2种 4=1+1+1+1=1+1+2=2+2,3种 也就是一数字n由1和2组成共有n/2+1种 zj@zj:~/...
2008-10-31 21:18 | 阅读 3422 次 | 评论 0 条

二十四点游戏的编程思路与基本算法

漫长的假期对于我来说总是枯燥无味的,闲来无聊便和同学玩起童年时经常玩的二十四点牌游戏来。此游戏说来简单,就是利用加减乘除 以及括号将给出的四张牌组成一个值为24的表达式。但是其中却不乏一些有趣的题目,这不,我们刚玩了一会儿,便遇到了一个难题——3、6、6、10(其实后来想想,这也不算是个太难的题,只是当时我们的脑筋都没有转弯而已,呵呵)。   问题既然出现了,我们当然要解决。冥思苦想之际,我的脑中掠过一丝念头——何不编个程序来解决这个问题呢?文曲星中不就有这样的 程序吗?所以这个想法应该是可行。想到这里我立刻开始思索这个程序的算法,最先想到的自然是穷举法(后来发现我再也想不到...
2008-09-26 15:24 | 阅读 9247 次 | 评论 0 条

浮点数求倒数

一个看不懂的算法,但是实现了 浮点数求倒数 float InvFloat(float p){ long _i = 2 * 0x3F800000 - (*(int *)&amp;(p)); float r = *(float *)&amp;_i; r = r * (2.0f - (p) * r); return r;}
2008-09-26 15:06 | 阅读 4859 次 | 评论 0 条

不需要乘除法实现对数运算

Calculate exp() and log() Without Multiplications This page describes a couple of algorithms for computing the elementary mathematical functions log(x) (logarithm to the base e) and exp(x) (e to the power x). The algorithms avoid multiplication and division operations, and are thus suitable ...
2008-09-01 19:40 | 阅读 6054 次 | 评论 0 条

多种算法源码网站

http://www.vckbase.com/sourcecode/algorithms/
2008-08-30 00:11 | 阅读 5430 次 | 评论 2 条

折半查找法

// cfree 2008.6.10#include &quot;iostream&quot;#include &quot;math.h&quot;using namespace std;#define MAXSIZE 200typedef int KeyType;typedef int DataType;typedef struct { KeyType key; DataType data;}NodeType;typedef NodeType SeqList[MAXSIZE];void SeqSearch(SeqList S,int n,KeyType k){ int...
2008-06-27 00:41 | 阅读 4907 次 | 评论 0 条

多路归并的外排序

//多路归并的外排序 //思路如下: //1.按各输入文件中下一个读到的元素的大小构造一个输入流最小堆. //2.从堆顶文件里读一个元素并写入输出文件. //3.同时按读的那个文件的下一个元素的值调整堆. //4.若第3步已到达文件结尾.则从堆中删除该输入流 //5 如果堆中还有元素. 回到第2步 #include<iostream>#include<fstream>#include<vector>#include<algorithm>#include<iterator>#include<functional>using namespac...
2008-06-10 09:57 | 阅读 23326 次 | 评论 1 条
浏览1872160次