
Programming Pearls
文章平均质量分 68
whosemario
这个作者很懒,什么都没留下…
展开
-
《编程珠玑》第一章笔记
文章从一个实际的问题开始:一个电话系统,7位数的电话号码,用1MB的内存空间将这些电话号码排序。分析:如果将这些电话号码看成int类型的整数,将其读入内存中进行排序,int类型4个字节,最多有10000000个电话号码,则需要40MB的内存空间,远远超出题目的要求,但是这10原创 2011-09-26 21:24:09 · 997 阅读 · 0 评论 -
Python源码解析——PyType_GenericAlloc
为什么要写PyType_GenericAlloc函数,原因是本人想写一篇关于创建Class的源码解析的博文,发现内容比较多,因此就打算分开解析里面比较重要的内容。转载 2016-01-03 22:49:17 · 1981 阅读 · 0 评论 -
远程调试Python进程的小工具
使用pdb和有名管道实现远程Python调试转载 2015-12-01 13:19:29 · 1669 阅读 · 0 评论 -
Python Coroutine 初探
Python Coroutine 初探转载 2015-11-22 16:06:23 · 5030 阅读 · 0 评论 -
ZJU PAT的一些代码
最近为了找实习,开始刷ZJU PAT上的题目,还有8、9道题就快刷完了,现在把部分代码放到github上,由于时间原因,有些代码遗漏掉了,后续可能会补上。。。。https://github.com/Whosemario/PatSourceCodes原创 2013-05-06 19:55:41 · 1319 阅读 · 0 评论 -
ZJU PAT 1010
好久没写oj的题解了,今天做了pat 1010的题目,提交代码后才只有19分,最后在网上看到才发现radix的大小是long long级别的啊,那么我们就只能使用二分来查找结果了,那么剩下的就是理清思路了。如果两个数字都是1,结果肯定是2如果两个数字相同,但不是1,结果肯定是题目输入的那个radix如果两个数字不相同,我们则有确定radix的范围呢?我们假设A的radix已经知道,那么原创 2013-03-28 23:43:43 · 4790 阅读 · 3 评论 -
最大独立集问题
最大独立集问题Given N sets of integers, remove some sets so that the remaining all sets are disjoint with one another. Find the optimal solution so that the number of sets remaining at the end is maxim原创 2013-01-17 15:50:23 · 45846 阅读 · 3 评论 -
【OpenGL Tutorial】Lesson2 移动与旋转
移动和旋转我们上一个程序有些简单,我们不是要学3D编程吗?上一个程序看起来完全是2D啊,现在就让我们做一些有意思的事情——让图形旋转起来。为了做到这一点,我们要理解OpenGL里面的移动和旋转。我们想象有一只鸟在场景里面飞行。它从原点开始,沿着z轴的负方向飞行,它可以移动、旋转、长大和缩小。当我们用glVertex将点传输给OpenGL的时候,OpenGL就用它来将鸟进行关联起来。所以,如翻译 2013-01-08 17:07:23 · 1064 阅读 · 0 评论 -
【OpenGL Tutorial】Part0:搭建环境
最近想学学OpenGL处理3D方面的技术,在网上搜了一下,发现有个名叫OpenGL Video Tutorial的网站很有意思,网站的作者说道他自己是一个大学生,也刚刚开始学习OpenGL 3D,希望通过这个网站教一些OpenGL的初学者写一下3D方面的技术。我觉得这个网站还不错,打算最近就跟着这个网站的教程学习一下,顺便翻译一下里面的内容。Lesson 0a:在Windows上搭建OpenG翻译 2013-01-01 20:52:22 · 1340 阅读 · 8 评论 -
【OpenGL Tutorial】Lesson1 基本图形
试一试让我们先来看看我们的第一个OpenGL程序。下载“basic shapes”测试程序,编译并运行它(怎样用Visual Studio编译看第一节课程)。程序的运行样例如下图,点击ESC可以退出程序。程序是怎样运行起来的程序是怎样运行起来的呢?最基本的思想就是我们告知OpenGL每个图形顶点的3D坐标。OpenGL使用标准的x,y坐标系,x水平指向右方,y竖直指向上翻译 2013-01-03 22:58:25 · 1285 阅读 · 0 评论 -
编程之美4.4 扩展问题——判断点位于多边形内部
首先说明的是此多边形是任意多边形,包括凹多边形:方法一:射线法以此点为原点的向右水平射线如果相交于多边形的点的个数为奇数个,则此点在多边形内部,但需要注意几个trick:有可能射线与某条边的端点相交,如果相交的端点的纵坐标是较大的那个,则记录,否则忽略有可能射线与某条边完全覆盖,忽略即可用Java写了一个代码,没有测试,但基本思路是这样的:public class原创 2013-01-01 09:52:03 · 1407 阅读 · 0 评论 -
树形DP——POJ1947 and POJ2486
本文针对POJ上的2057、1947、2486、3140四道题目,谈一下个人对树形DP的理解,上面4题无法覆盖树形DP的所有形式,但也有一定的针对性,值得去做一做,思考一下:树形DP中常常用到“背包思想”,1947和2486就是利用了“背包思想”,状态想好了,最后就是在填“背包”,某个节点的“背包”是用他们的子树的状态进行填充的。POJ1947:状态dp[i][p]表示以节点i为根原创 2012-12-23 23:07:32 · 1723 阅读 · 0 评论 -
细节很关键
此篇博文只是一些吐槽,主要还是要提醒自己细节很重要。平时写C代码,永远都不去管什么Warning,只要没有Error就OK。这次在实验室做一个小东西,要用Java的Runtime执行一个Makefile文件,Makefile文件编译一些C源码,编译的过程中会报很多Warning出来,本来本地直接运行Makefile一切正常,但用Runtime的exec运行时就会卡死,个人认为是大量的Warni原创 2012-11-24 14:53:50 · 586 阅读 · 0 评论 -
GCJ Round2 B题 Deterministic方法实现
虽然用随机化方法可以很容易过此题,代码实现也很方便,但还是写了一个Deterministic Solution的方法,具体的实现方案看GCJ官方的analysispublic class BProblem { private class Circle implements Comparable{ public long R; public int ind; @Override原创 2012-05-28 20:50:24 · 1080 阅读 · 0 评论 -
梯度下降算法(Gradient descent)
梯度下降算法是一种求局部最优解的方法,在wikipedia上对它做了详细的说明,这里我只是把自己感兴趣的一些地方总结一下:对于F(x),在a点的梯度是F(x)增长最快的方向,那么它的相反方向则是该点下降最快的方向,我们有如下结论:其中,v是一个大于0的数,于是我们有F(b)>=F(a),那么当我们不断地迭代下去,最终结果将收敛于一个局部最小值。我们举一个简单的例子:利用梯度原创 2012-05-09 16:37:32 · 13406 阅读 · 1 评论 -
Python中的单例模式实现
使用Python来实现单例模式是一件很有意思的事情,在这个过程中我们会重新审视Python在创建类(Build Class)和构建实例时都调用了那些magic method。 同时我也想说的是Python的单例模块实现多种多样,但有些实现是存在问题的,在某些情况下是不可用或者影响系统的某些功能的。转载 2016-01-26 23:37:50 · 2139 阅读 · 0 评论