01 2013 档案

摘要:题意:m是长为n的数组,值均为非负数,前k个数按以下方式产生:(1)m[0]=a;(2)m[i] = (b * m[i - 1] + c) % r其中1≤k≤100000,1≤n, a, b, c, r≤1000000000对k≤ j≤ n - 1,m[j]是它前面k个数中没出现的最小非负数,形式地,m[j]=min{x|x ≥ 0 && x != m[j - 1]&& x != m[j - 2] ...&& x != m[j - k]}求m[n - 1]输入格式为:T(测试案例数,每个测试案例2行)n ka b c rn ka b c r... 阅读全文
posted @ 2013-01-31 09:57 ttang 阅读(1276) 评论(0) 推荐(0)
摘要:Windows自带计算器不适合计算很长的式子,而且没有历史命令功能,这个对于重复性地计算多个相似的式子很有用。Matlab启动太慢,一般的python要想用个log什么的挺麻烦R很好,因为本身就和Matlab很像,也是一门做计算的语言,启动很快唯一不好的是,要区分R和Matlab的语法差异,这又是个额外的负担……想起来有段时间我觉得自己都有点分不清C++和Java语法的区别了,尤其是new的用法所以,准备一个R quick reference会好一点其实还可以准备其他的quick reference,比如C++/C/STL/Matlab/gdb等等凡是感兴趣的,都可以准备一份,这些网上都有貌似 阅读全文
posted @ 2013-01-24 23:53 ttang 阅读(901) 评论(0) 推荐(0)
摘要:http://poj.org/problem?id=1830 某些开关的动作可能影响另一些开关的状态,因此以开关为节点,如果存在这种关系就加入一条有向边(开始我想成对称的了,浪费了很多时间- -),这样就构成了一个图,可以用邻接矩阵表示(但是要转置一下,后面细说)。当某个开关按下时,其自身状态改变,受其影响的开关的状态也改变。 用两个N维向量表示初始状态和结束状态,两者逐个元素异或,就得到了开关状态的变化。 以第一个样例输入为例分析,3个开关,两两相连,初始状态000,最终状态111,开关对应的邻接矩阵为将对角线的0全部换成1,得矩阵A=将矩阵每一列想象为一个开关按下后产生的效果(1表示状态翻 阅读全文
posted @ 2013-01-24 09:37 ttang 阅读(1514) 评论(2) 推荐(2)
摘要:同济大学线性代数A网上教案(很好)http://web.tongji.edu.cn/~math/xxds/kcja/kcja_a/kcja_a.htm向(矢)量空间(from wiki):给定域F,一个矢量空间是个集合V并规定两个运算:矢量加法:V×V→V,把V中的两个元素v和w变为V中另一个元素,记作v+w;标量乘法:F×V→V,把F中的一个元素a和V中的一个元素v变为V中的另一个元素,记作av。这两个运算符合下列公理(对F中的任意元素a、b以及V中的任意元素u、v、w):矢量加法结合律:u+(v + w) = (u + v)+w,矢量加法交换律:v + w=w + v, 阅读全文
posted @ 2013-01-23 16:21 ttang 阅读(1584) 评论(0) 推荐(0)
摘要:定义13.1矩阵的行向量组的秩称为的行秩,据政的列向量组的秩称为的列秩.定理13.1设的充分必要条件是中有一个,并且所有含(如果存在的话).(子式定义:在矩阵中,任取行列的元素,按原排列组成的阶行列式,称之为的阶子式。)推论13.2设,则(1)的列秩的列秩;(2)的列秩的行秩.定义13.2矩阵的行秩和列秩通称为的秩,记为.显然,矩阵的秩是唯一确定的,并且,,,零矩阵的秩等于0.秩的一个等价定义:若矩阵中有一个阶子式,并且所有的阶子式全为零,则称为的最高阶非零子式,称为的秩,记。推论13.3若矩阵中有一个阶子式不为0,则;若矩阵中所有阶子式全为0,则.推论:当阶方阵的行列式,则;反之,当阶方阵的 阅读全文
posted @ 2013-01-23 11:49 ttang 阅读(2411) 评论(0) 推荐(0)
摘要:1、我们说矩阵的逆,是针对方阵(见下面wiki的定义)给定一个n阶方阵,若存在一n阶方阵,使得,其中为n阶单位矩阵,则称是可逆的,且是的逆矩阵,记作。若方阵的逆阵存在,则称为非奇异方阵或可逆方阵(http://zh.wikipedia.org/wiki/%E9%80%86%E7%9F%A9%E9%98%B5)性质:(1)矩阵的逆是唯一的(2)如果A可逆,数λ≠0,那么(A)-1=A-1;(3)如果A可逆,那么,AT也可逆,而且( AT)-1=( A-1)T;(4)如果A,B皆可逆,那么AB也可逆,且(AB)-1=B-1A-1矩阵的初等变换定义下面三种变换称为矩阵的初等行变换:1.互换两行(记) 阅读全文
posted @ 2013-01-23 11:27 ttang 阅读(3142) 评论(0) 推荐(0)
摘要:平台:Windows7,python31、关于是直接用python for Windows还是activePython(还有ipython什么的,就不知了):(1)貌似是说activePython集成了Windows的API(但我基本不会用到);(2)activePython可能功能更全面一点(从安装包大小就可以大概猜到),但是更新没有python for Windows快,比如我现在用的activePython中python版本是3.1,而python for Windows中python版本是3.3。(3)从二者的交互式窗口来比较,我觉得不自己配置的话activePython的Python 阅读全文
posted @ 2013-01-22 11:54 ttang 阅读(401) 评论(0) 推荐(0)
摘要:最近开始学python,参考书是《head first python》,里面有一个例子教初学者如何发布共享代码到pypi,然后最后一步遇到这个问题:You are not allowed to store 'nester' package information找到原因是:nester这个名字已经被用过了,要改个名字,比如XXX_nester参考:http://forums.oreilly.com/topic/52526-ch-2-pg-48/ 阅读全文
posted @ 2013-01-22 11:37 ttang 阅读(751) 评论(0) 推荐(0)
摘要:题:用0,1,2三个字符组成n长的字符串,连续出现两个0或两个1的字符串有多少种?符号说明:f(n)表示符合要求的n长字符串数,f0(n),f1(n),f2(n)分别表示以0,1,2结尾的符合要求的n长字符串数用递归,考察n长字符串最后一个元素:(1)若为2,则前n-1个元素恰对应一个符合要求(即连续出现两个0或两个1)的字符串,有f(n-1)个(2)若为0,则考察倒数第二个元素,(1)若为0,则前n-2个元素任意取,有3n-2个符合要求的字符串;(2)若为1,则前n-1个字符是以1结尾的符合要求的长为n-1的字符串,有f1(n-1)个;(3)若为2,则前n-1个字符是以2结尾的符合要求的长为 阅读全文
posted @ 2013-01-21 23:56 ttang 阅读(1766) 评论(0) 推荐(0)
摘要:题:(1)5个0,4个1组成的字符串中,出现01或10的次数为4的不同字符串个数(2)一般地,n个0,m个1组成的字符串中,出现01或10的次数为k的不同字符串个数例如,10100011是一个满足要求的字符串(这里10和01是可以重用的,例如,010算是出现1次01,出现1次10)(这是刚刚考过的组合数学期末试题,表示没能当场做出,选错方法了- -我用了递推法,写出了递归式但是不会解,因为有n、m、k三个参数——这也许不是正确的方法)----------------------符号说明:1)N01和N10分别表示字符串中01的个数和10的个数2)N=N01+N10,表示字符串中01和10的总出 阅读全文
posted @ 2013-01-21 23:28 ttang 阅读(6574) 评论(9) 推荐(0)
摘要:参考了http://chojemmy.com/2012/02/05/youdao-shortcut-key/第一次接触按键精灵,不是很顺利,记录一下遇到的问题,以及最后的解决方案1、下载安装,http://www.anjian.com/2、打开按键精灵——新建3、截图,可以用程序自带的“抓抓”,点上边栏的“抓抓”——左边栏的“图像”——“截屏”,这个时候整个屏幕就被截到下面方框里(当然,截屏之前要先把要截的图调到屏幕上),然后拖动滚动条到需要的位置,按住鼠标左键拖动即可截图,弹出“位图另存为”,保存即可。最后得到这样一个小图片:(就是要在屏幕上找到这样一个图片,将鼠标移过去,单击一下)4、点一 阅读全文
posted @ 2013-01-08 23:24 ttang 阅读(2877) 评论(0) 推荐(0)
摘要:如题,这个主要是对于大整数(比如200位的十进制数),而且能够以很高的概率得到正确的判断比如下面这个程序判断10000以内的素数,正确率达到98.95%因为素性测试目前貌似没有有效的确定性算法(所谓有效,应该是指判断n是否为素数,花费时间T是n的位数的多项式),所以这个概率算法很有用用概率算法是不是始终不放心?虽然错误概率很小,毕竟还是存在啊。实际上,当算法的错误概率小于机器的硬件出错的概率时,这就不是问题了(是的,硬件也会出错的,而且你的程序运行时间越长,出错概率越大)关于这个算法,算法导论上也有讲,可以到那里了解算法的原理(偷个懒- -)//MillerRabin素性测试,概率算法//n 阅读全文
posted @ 2013-01-07 17:53 ttang 阅读(2179) 评论(0) 推荐(0)
摘要:#define min(a,b) ((a) < (b) ? (a) : (b))#define max(a,b) ((a) > (b) ? (a) : (b)) 我常常会用这两个宏,一般来说,宏比函数更高效,但是如果里面元素是函数的话,就不是这样。因为宏只是在编译预处理阶段执行简单替换,如果你有两个函数f和g,代码中写了min(f(a),g(a)),那么就会被展开为((f(a)) < (g(a)) ? (f(a)) : (g(a))),这是4次调用,而不是想象中的先算f(a),再算g(a),然后传给min——那是函数的行为,不是宏! 如果f和g是递归函数的话,结果更糟糕 实际 阅读全文
posted @ 2013-01-07 14:54 ttang 阅读(6927) 评论(0) 推荐(1)
摘要:我发现之前有这么一篇,竟然又写了一遍……不过,这个比较简单,没用class,姑且命名为2经常看到有人写动态规划程序就用dp命名数组,发觉挺好,因为想一个合适的名字太费劲了,而且便于重用(与问题无关)最优二叉查找树的思想:(建议还是看书吧,算法导论上有,大多数算法书上应该都有,挑一个容易读懂的看,有些算法算法导论上讲得很复杂(也很严密)https://class.coursera.org/algo2-2012-001/lecture/index,这里也有一个系列的视频专门讲最优二叉查找树的(英文))具备最优子结构性质:如果T是一个由n个节点构造的最优二叉查找树,根为r,那么左子树也是一个最优二叉 阅读全文
posted @ 2013-01-06 21:46 ttang 阅读(977) 评论(0) 推荐(0)
摘要:有些命令不太常用,每次用到都要上网查,写这篇博客是准备每次查过一个命令就记下来,所以这篇博客会持续更新1、录制宏有个文件每一行的前两个字符都是空格,要删除这些空格命令模式下移动光标到第一行开头,输入:qaxxjq50@a第一个q表示宏录制的开始,最后一个q表示宏录制的结束a表示这个宏的名字,调用a就是执行这个宏x表示删除一个字符,j表示下移一行(也可以用下方向键代替)50表示执行50次,@a表示调用宏a--ps:这个任务也可以在notepad++里完成,同样采用录制宏的方式,那个是图形化,更好办2、Ctrl+P——补全在插入模式下Ctrl+P具有补全的功能,对长的函数名或者变量名应该有用 阅读全文
posted @ 2013-01-05 17:50 ttang 阅读(216) 评论(0) 推荐(0)
摘要:这个证明让我花了好大力气(可能是我太笨了,貌似同学都做出来了,也没人说这个难),开始想证明,似乎不会,就想偷懒上网找答案,找不到,又回来想……我觉得关键在于把规律看出来,写个程序,打印几个例子看一看,我就是把16个元素的打印出来,找到规律,虽然说找到规律要证明也要一点工夫,但是,找到规律就是找到了努力的方向,成功就不远了--位反转:把一个数的二进制表示倒过来(最低位换到最高位,次低位换到次高位……),比如6的二进制表示为110,反转后是011,即6对应的位反转数为3。对位反转应该要限制二进制表示的位数,因为如果把6表示成4位二进制0110,反转后是6,而不是3.(这里位反转数是为了称呼方便自造 阅读全文
posted @ 2013-01-04 23:10 ttang 阅读(711) 评论(0) 推荐(0)
摘要:http://poj.org/problem?id=1458#include <stdio.h>#include <iostream>#include <string>#define max(a,b) ((a) > (b) ? (a) : (b))using namespace std;#define MAX 1000int dp[MAX][MAX];//dp[i][j]表示s1前i个字符组成的substring与s2前j个字符组成的substring的最长公共子序列长度int main(int argc, const char *argv[]){ s 阅读全文
posted @ 2013-01-02 23:09 ttang 阅读(199) 评论(0) 推荐(0)