
《!—— 代码集 ——》
文章平均质量分 60
光宇广贞
有志于学,虽草庐中应可知天下事!
展开
-
字符串编辑距离查表法
时空复杂度均为 O ( |s1| * |s2| )unsigned int CalcStringDistance ( const _TCHAR str1[], unsigned int l1, const _TCHAR str2[], unsigned int l2, unsigned int* record, unsigned int rl ){原创 2009-07-20 16:53:00 · 1484 阅读 · 8 评论 -
从 C++ 模板元编程生产质数看 F# 函数式编程思想
文 / 李博(光宇广贞) 话说 1994 年,C++ 标准委员会在圣迭哥举行的一次会议期间,Erwin Unruh 同学展示了一段可以产生质数的代码。这段代码的特别之处在于质数产生于编译期而非运行期,在编译器产生的一系列错误信息中间夹杂着从 2 到某个设定值之间 的所有质数。其改进版据说在 GCC 3.2 上得到验证。 源代码这里就不贴出来了,网上或者任一本《模板元原创 2009-08-10 19:59:00 · 4201 阅读 · 4 评论 -
大数阶乘
#include #define N 10 //计算N的阶乘,修改N的定义可计算10000以内任意数的阶乘void main(){ int a[N] = { 1 }, i, c, m, n; for( m = 0, n = N ; n > 1; n-- ) { for( i = c = 0; i <= m; i++ )原创 2009-06-04 18:40:00 · 2930 阅读 · 7 评论 -
C语言之#define用法
http://hi.baidu.com/apollo_hj/blog/item/95097b30599dc61feac4affe.html 一.#define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在转载 2009-06-05 19:20:00 · 2510 阅读 · 2 评论 -
求次幂之个位数
坎儿妹问我这个……我一看,太简单了,写出来吧gave a and b,how to know the a^bs the last digit numbervoid main(){ const int n[10][4] = { { 0, 0, 0, 0 }, { 1, 1, 1, 1 }, { 6, 2,原创 2009-06-05 20:22:00 · 1070 阅读 · 0 评论 -
关于判断某一个整型值内的1的个数
int HowMany1 ( int n ){ int count = 0; while ( n ) { n &= n - 1; count++; } return count;} n &= n - 1 用于判断 n 是否为 2 的次幂,如是,则 n 为零。也就是说 n &= n - 1 可以将原创 2009-06-06 12:30:00 · 1153 阅读 · 0 评论 -
大数相加
坎儿妹的又一道题,输入不超过1000位的大数(两个正整数),求和void main(){ char a[1002]; char b[1002]; char* c; int i, p = 0, q = 0, m, n, r; scanf( "%s %s", a, b ); while ( a[p++] ); p--;原创 2009-06-05 21:27:00 · 1038 阅读 · 3 评论 -
ShellExecute与ShellExecuteEx的用法
http://www.cppblog.com/bidepan2023/archive/2007/07/20/28419.aspxQ: 如何打开一个应用程序? ShellExecute(this->m_hWnd,"open","calc.exe","","", SW_SHOW );或 ShellExecute(this->m_hWnd,"open","notepad.exe","c://My转载 2009-06-06 11:18:00 · 1383 阅读 · 1 评论 -
一个整型数的二进制序列
http://blog.youkuaiyun.com/akirya/archive/2007/03/12/1527365.aspx templatestruct Bit{ enum { Data = ((Num << ( n - 1 )) & 0x80000000 ) ? 1 : 0 };};const int N = -4;char sz[]={ Bit:转载 2009-06-09 14:02:00 · 1329 阅读 · 2 评论 -
正则表达式统计PDF文档的页数
在记事本中打开PDF文件,可以发现文件中的每一页都有一个特定的标记:"/Type /Page" (根据PDF版本的不同,在两个词之间可能带有空格)。所以,只需要计算这个标记在文件里出现了多少次。 首先需要使用FileStream 打开pdf文件,然后使用StreamReader将文档内容作为字符串读取。FileStream fs = new FileStream(@"c:/a.pdf", File转载 2009-06-13 11:55:00 · 2842 阅读 · 0 评论 -
四人过桥——微软题的计算机模拟算法
问题:四人夜过桥,步行时间分别为 1、2、5、10 分钟,四人只有一台手电筒,一趟最多两人过桥,一趟过桥须持手电筒,时间以最慢者计,问 17 分钟内可否过桥,如何过桥?#define STATE char#define PATH charconst int TimeLimit = 17;STATE State[16] = { 1 };PATH Path[16];cons原创 2009-08-24 18:56:00 · 11227 阅读 · 23 评论 -
判断一个整型值有无符号
http://topic.youkuaiyun.com/u/20090618/18/b892dbeb-2e2a-43cf-91bd-94ce661ad104.html几种有意思的方法:第一种:#define ISUNSIGNED(a) (a >= 0) && ( ~a >= 0) 第二种:a 为待测数 int b = -1;if ( a < 0 ){ c原创 2009-06-18 19:08:00 · 1623 阅读 · 1 评论 -
“人狼羊草”的计算机模拟暴力枚举
问题:人载狼羊草过河,一次摆渡除了人只能载一样,没人时,狼与羊、羊与草均不可独处。问如何过河。#define STATE char#define PATH charSTATE State[8] = { 1 };PATH Path[16];char* Bios[] = { "草", "羊", "狼", "人" };void Ferry ( int state, int d原创 2009-07-09 23:52:00 · 4507 阅读 · 14 评论 -
Axis + Tomcat + Eclipse 发布 WebService
搭建 Axis + Tomcat + Eclipse 平台、SOAP & AXIS、部署方法、JAVA2WSDL2JAVA、WSDL 这个东西很有意思啊!原创 2011-05-31 16:09:00 · 7083 阅读 · 0 评论 -
随便聊聊 SOA & SOAP & WebService 的一些东西,以及客户端开发的代码逻辑解析
随便聊聊 SOA & SOAP & WebService 的一些东西,以及客户端开发的代码逻辑解析原创 2011-06-01 17:36:00 · 5811 阅读 · 1 评论 -
尾递归、CPS等几种求阶乘的算法
好久没写手快生了。好久没来也已是物是人非了。发个阶乘的尾递归、CPS等几种写法吧。#include "stdafx.h"// 阶乘#include #include using namespace std;int _tmain(int argc, _TCHAR* argv[]){ function Fact = [&Fact](int n) -> int { if原创 2013-10-20 15:10:01 · 3928 阅读 · 0 评论 -
用Process启动新的程序,并捕获它的标准输出流
http://www.cnblogs.com/qkhh/archive/2009/03/18/1415390.html本文测试的是,用System.Diagnosis.Process启动新的程序,从它的标准输出流中读取输出,然后将输出显示界面的TextBox中。先看Process类提供的几个相关属性和方法。1. bool RedirectStandardOutput表示是否重定向标准输出。转载 2009-05-30 22:31:00 · 2684 阅读 · 0 评论 -
人和猴子分配椰子问题
五男一猴子在一个岛屿上。他们度过了第一晚采收椰子。在夜间,一名男子醒来,并决定拿走他那一份椰子。他分为五个份。椰子剩下来一个,他把它给猴子,然后藏起他的份额,回去睡觉。 不久另一名男子醒来后,也做了同样的事情。经过划分为5份椰子,剩余一个给猴子,拿走自己的,又回到床上。第三,第四和第五名男子一样。第二天早上,他们都醒了,他们剩下的椰子分成五个平摊。这一次没有椰子被遗留下来的原创 2009-05-30 12:07:00 · 5777 阅读 · 1 评论 -
如何在DragDrop特殊文件夹时得到相关信息
转自 http://www.cnblogs.com/feiyun0112/archive/2009/02/09/1386802.html 如何在DragDrop特殊文件夹时得到相关信息该论坛有如是贴子,问如何知道在拖放 http://social.microsoft.com/Forums/zh-CN/visualcshartzhchs/thread/2a4fc136-3d57-4c64-8转载 2009-05-29 13:33:00 · 913 阅读 · 0 评论 -
限次连续若干同色球概率算法
问题: 对 n 种不同颜色的若干球,一次取用一次,记录球色并放回。计算在 p 次之内至少连续 q 个球同色的概率两法,均为计算机模拟,一种是传统的暴力枚举,第二种,则巧妙利用了随机数……double CalcProbability ( double dn, int p, int cq, int Q ){ double prob; if ( p && cq )原创 2009-07-27 18:10:00 · 1654 阅读 · 0 评论 -
字符串编辑距离查表法改进
《字符串编辑距离查表法》此篇博文所述,时空复杂度均为 O ( |s1| * |s2| )。此改进法使空间复杂度降为 0 ( min ( |s1|, |s2| ) )。UINT StringDistance ( const _TCHAR str1[], const _TCHAR str2[] ){ UINT length1, length2, * record, i原创 2009-07-25 15:02:00 · 1498 阅读 · 0 评论 -
System.Threading.Parallel 的用法
System.Threading.Parallel 提供了几种实用的循环并行处理方法,让我们可以用非常简便的代码完成并发处理。1. Forvar datas = new[] { "a", "b", "c" };Parallel.For(0, datas.Length, i => { var s = datas[i]; Console.WriteLine(">>> Thread:{0转载 2009-05-18 11:07:00 · 1786 阅读 · 0 评论 -
如何打印 RichTextBox
// 与 Win32接口通信 [DllImport("USER32.dll")]private static extern Int32 SendMessage(IntPtr hWnd, int msg, int wParam, IntPtr lParam);private const int WM_USER = 0x400;private const int EM_FORMATRA原创 2009-05-18 11:38:00 · 2131 阅读 · 0 评论 -
GlyphRun 用法——最高效的字符打印方案
GlyphRun and So ForthIn WPF there are a number of ways to get text painted, ranging from Label at the simple end, all the way down to GlyphRun if you want to get your hands dirty.The latte转载 2009-05-18 12:08:00 · 4120 阅读 · 0 评论 -
CPU 频率之汇编计算法
; Frequency Calculation ; Filename: FREQUENC.ASM ; Copyright (c) Intel Corporation 2001-2003 ; ; This program has been developed by Intel Corporation. Intel ; has various intellectu原创 2009-05-18 11:08:00 · 1513 阅读 · 0 评论 -
如何让进程退出前删除自身EXE
下面的代码由 Gary Nebbett 写就。Gary Nebbett 乃是 WINDOWS NT/2000 NATIVE API REFERENCE 的作者,NT 系统一等一的高手。下面就分析一些他的这段代码。 这段代码在PROCESS没有结束前就将启动PROCESS的EXE文件删除了。int main(int argc, char *argv[]) { H转载 2009-05-18 11:31:00 · 1343 阅读 · 4 评论 -
如何打印 DataGridView
using System;using System.Collections;using System.ComponentModel;using System.Drawing;using System.Drawing.Printing;using System.Data;using System.Windows.Forms;namespace cjManager{原创 2009-05-18 11:39:00 · 2016 阅读 · 1 评论 -
Win时间函数
我们在衡量一个函数运行时间,或者判断一个算法的时间效率,或者在程序中我们需要一个定时器,定时执行一个特定的操作,比如在多媒体中,比如在游戏中等,都会用到时间函数。还比如我们通过记录函数或者算法开始和截至的时间,然后利用两者之差得出函数或者算法的运行时间。编译器和操作系统为我们提供了很多时间函数,这些时间函数的精度也是各不相同的,所以,如果我们想得到准确的结果,必须使用合适的时间函数。现在我就介绍w转载 2009-05-22 12:07:00 · 1250 阅读 · 3 评论 -
取球的概率算法
http://topic.youkuaiyun.com/u/20090518/21/8b96f19a-af92-4eb8-8021-2977c29f27d2.html#replyachor一个箱子里有r个红球和b个蓝球,球的个数之和是奇数。A和B一起玩一个游戏,首先A从箱子里随机取出一个球(取到每个球的概率是一样的),然后B从箱子里取出一个蓝球,依次进行下去。 当轮到B取时,箱子里没有可取的蓝原创 2009-05-26 01:20:00 · 5294 阅读 · 4 评论 -
Memcmp 与 Strcmp
http://blog.youkuaiyun.com/jcwKyl/archive/2008/03/25/2217428.aspxintel/strcmp.asm: mov edx, dword ptr [esp + 4] ;取第二个参数地址 mov ecx, dword ptr [esp + 8] ;取第一个参数地址 test edx, 3 ;edx是第二个参数的地址,这里即转载 2009-05-25 20:04:00 · 3797 阅读 · 0 评论 -
find()、find_end()、find_first_of()、find_if()的使用示例和区别
http://blog.youkuaiyun.com/xqls_xqls/archive/2008/12/03/3437640.aspx#include #include #include #include #include using namespace std; int main(int argc,_TCHAR* argv[]){ //find_first_o转载 2009-05-28 02:08:00 · 2259 阅读 · 0 评论 -
VC++中使用内存映射文件处理大文件
http://blog.chinaunix.net/u2/75321/showart_1137227.html摘要: 本文给出了一种方便实用的解决大文件的读取、存储等处理的方法,并结合相关程序代码对具体的实现过程进行了介绍。 引言 文件操作是应用程序最为基本的功能之一,Win32 API和MFC均提供有支持文件处理的函数和类,常用的有Win32 API的CreateFile()、Write转载 2009-05-29 14:35:00 · 924 阅读 · 0 评论 -
如何在C#用WM_COPYDATA消息来实现两个进程之间传递数据
http://www.cnblogs.com/cdo/archive/2005/06/08/170457.html 简介:本文着重讲述了如果用WM_COPYDATA消息来实现两个进程之间传递数据。进程之间通讯的几种方法:在Windows程序中,各个进程之间常常需要交换数据,进行数据通讯。常用的方法有1、使用内存映射文件2、通过共享内存DLL共享内存3、使用SendMessa转载 2009-05-30 22:35:00 · 3201 阅读 · 0 评论 -
SSE指令介绍及其C、C++应用
http://blog.youkuaiyun.com/olncy/archive/2009/04/16/4084374.aspx作者:Alex Farber出处:http://www.codeproject.com/cpp/sseintro.aspSSE技术简介Intel公司的单指令多数据流式扩展(SSE,Streaming SIMD Extensions)技术能够有效增强CPU浮点运算的能力。V转载 2009-06-12 16:05:00 · 3299 阅读 · 0 评论