- 博客(11)
- 资源 (25)
- 收藏
- 关注
原创 快速的素数算法(LogN的复杂度哦)---------1
如果要写一个素数算法,我想大家第一反应会是如下的代码:bool IsPrime(unsigned uValue){ for(unsigned int i= 2; i< uValue; ++i){ if(uValue%i== 0){ return false; } } return true;} 这个代码的正确性肯定是不需要否定的,但是,我们根据数学
2012-07-30 14:29:35 9268 1
原创 你应该拿哪一份饭呢?
问题如下:一天,到了吃饭的时间了,你的一个同事帮你们实验室的40个同学带饭,同事问你要什么饭,你说随便(意思是让同事自己看着买),结果同事带回来39份青椒肉丝,一份鸡蛋肉丝,你不知道哪一份是你的,于是你等着别人先拿(剩下的一份自然是你的),有38个同事都过来拿了,不巧的是同事们都拿的是青椒肉丝,也就是说剩下的应该是一份青椒肉丝和一份鸡蛋肉丝,可是,过了很久都没有人再来拿了,你到现在自然不能确定
2012-07-23 00:30:50 2861 7
原创 如果你是一个合格的程序员或者你认为自己应该是计算机科学家
如果你认为自己应该是计算机科学家,那么,你应该做如下的事情:1,你学的第一门语言应该是C++,第二门是汇编2,你应该对数学的掌握不差于数学专业的比较差的学生,对于数论那些东西你也应该会3,你应该读过算法导论,更进一步的,你应该读过TAOCP(我觉得一个合格的程序员应该读过这本书)4,你应该深入理解一个系统,如果是windows 的话,你应该理解这个系统的设计
2012-07-23 00:03:49 3840 5
原创 教你用Windows API 写一个Thread类(不使用static哦)------(4)
这一篇文章中主要是讲解怎么写代码把以上3篇文章的理论用起来,写出一个能用的Thread类(只是模型)我在第3篇中提到了,要想把类的成员函数做Thread函数,一定要在一个时候把this指针赋值给ecx,问题是在类的成员函数里面是不太可能做这种事情的,因为如果你要让fun成为线程函数,你就需要在别的函数里面初始化ecx,这样感觉有点多余。我用的最简单的一个方法是写一段机器代码,在这个机器代码里面
2012-07-18 18:37:53 2491
原创 教你用Windows API 写一个Thread类(不使用static哦)------(3)
在这文章里面,我主要解释class里面的函数调用原理,首先给出测试代码如下:class CBase{public: void Hello(){ }};int main(){ CBase base; base.Hello();} 同样地,按照前面文章讲解的方法,汇编得到以下main.asm,如下:; Listing generated by Micro
2012-07-18 18:18:07 2018
原创 教你用Windows API 写一个Thread类(不使用static哦)------(2)
这一文章中我们主要分析VS平台对于函数调用的编译处理,首先我们看一个简单的例子,代码如下: void Hello(){ } int main(){ Hello(); } 然后在VS Command Prompt下面用cl -FA main.cpp 编译一下,你会得到一个汇编的文件main.a
2012-07-18 17:41:25 1695
原创 教你用Windows API 写一个Thread类(不使用static哦)------(1)
关于Windows API 的线程函数CreateThread的使用MSDN有如下说法:The CreateThread function creates a thread to execute within the address space of the calling process.HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThr
2012-07-18 13:04:33 2180 1
原创 随机变量:从另一个方面看问题,或许就不一样了
这个结论非常重要的,比如以下一个题目,这里有n个盒子,同样地有n个球,把n个球放进n个盒子里面,现在要求空盒子的期望数目。分析如下:1,我们不防随便选一个盒子,然后,如果把一个球随机地放进n个盒子里面的某一个里面,则球不在我们选定的那个盒子里面的概率是1-1/n(其实是抽签模型)。我们把n次放球看成独立的事件,则经过n次放球之后,这个盒子仍然是空的概率是Pow(1-1/n, n)。 2
2012-07-17 17:38:11 1773 1
原创 简单的DLL注入及代码详解
dll注入是一种常用的攻击方法,其大概步骤如下:1,编译出一个DLL,这个DLL的DllMain里面负责搞破坏2,打开一个目标进程(就是你要搞破坏的进程)3,在打开的目标进程里面分配一块内存(它的用处是用于放我们要注入的dll名称)4,得到Kernel32.dll里面的LoadLibraryA的地址(注意,Kernel.dll是内核空间里面的,所以,在所有的进程里面,它的地址都一样
2012-07-17 16:58:14 2356 3
原创 template实例化导致代码膨胀的后果(编译器编译才20行的代码就死掉哦)
首先,说明一个我电脑的配置如下:操作系统: MAC OS Lion 10.7.3(64 bit)CPU: Intel I5内存: 三星DDR3 1333 4G编译器: XCode 4.3.2 (64 bit) 代码如下: #include//author:[email protected]
2012-07-03 09:59:42 2473
原创 百度编程大赛的9宫图代码及解析
先放代码,算法设计过程我随后再放上去//author:[email protected]//csdn:http://blog.csdn.net/wind_2008_06_29/article/details/7706531#include #include using std::cout;using std::endl;using std::cin;using std::list;
2012-07-01 13:57:13 3952 8
统计学习基础
2017-11-08
机器学习实战datingTesetSet.txt数据集
2017-09-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人