摘要: 今天在系统同上要装个gnuplot,原来用的都是拷好的虚拟机。这也是第一次装。本来以为分分钟的事,却不料遇到不少麻烦。记录一下,供大家参考一,快速开始安装 ubuntu下那自然是:sudo apt-get install gnuplot装完之后我的gnuplot也可以用了,看起来很正常,除了最后一行set terminal "unknown"。(开始也没太注意,后来才发现不行。。。。)装好之后运行一下 plot sin(x),发现命令是没什么错误看起来是成功了,但是就是没有图形显示。。。。二、查找问题于是乎上网百度,看到转的最多的一篇就是说少装了运行库,于是乎我就各种装发现 阅读全文
posted @ 2014-04-10 19:27 mrbean 阅读(2507) 评论(0) 推荐(0) 编辑
摘要: 1.作为你们的老师,我现在每周工作60小时,踏踏实实的60小时。阅读,实践,思考,讨论和请教,周而复始。其实这还不够用,因为我既要独立做这边自己的课题,还要协助各位完成你们的课题。那么对你们的要求降低一些,每周50小时吧。希望是真实而有效率的50小时,思维和四肢都处于激活状态的50小时。大家千万不要认为这有什么不得了的,跟国外就不用比了,单就国内而言,北大、清华、中科院研究生的工作状态,比50小时有过之而无不及。不能否认我们学生的天赋,但我们的天赋大约不会比北大、清华、中科院或Stanford, Harvard, UCBerkeley的学生高很多。一周工作40小时或更少,我们拿什么去竞争? . 阅读全文
posted @ 2014-04-10 19:09 mrbean 阅读(423) 评论(0) 推荐(0) 编辑
摘要: 描述:把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。思路一:直接写个函数挨个判断一下那个数是不是丑数,然后就可以得到第几个丑数是什么了。这种方式比较简单就不上代码了。思路二:空间换时间,再加上一点技巧,个人感觉有点动态规划的意思:首先我们分析一下这个面试题的描述,既然所有的数的因子都只有2,3,5,那么我们可以得到每个数必然是前面的数乘2,3,5的最小数,也就是说找到那么一个数是的他是已有的丑数集合中乘以2,3,5的最小数,这个数也就是下一个丑数。但是我们知道不能真 阅读全文
posted @ 2014-04-09 14:18 mrbean 阅读(565) 评论(2) 推荐(0) 编辑
摘要: 由于我电脑的各种奇葩问题的存在,导致我装上Ubuntu13.10之后网卡居然无法使用,坚持了挺久使用无线网,终于坚持不住了,百度了各种解决方式,终于成功解决。这里也记录一下我的解决过程,供大家参考。大概有以下几种方式:一、直接百度,Google “Linux下网卡驱动下载”,不过结果并不乐观。。。基本没有能用的东西。二、去电脑的官网下载,有个用Dell的哥们貌似就是这么干的。可是当我登上大联想的官网,一查驱动发现全是for windows。于是呵呵,看来这两家还 是有不小的差距的啊。。。三、去驱动的官网下,电脑厂商不支持,网卡的厂商总是要支持的吧,于是乎我又上了Realtek的官网(其他厂商. 阅读全文
posted @ 2014-04-07 10:32 mrbean 阅读(1396) 评论(0) 推荐(0) 编辑
摘要: 题目很简单,与之相似的还有用两个队列实现栈,思路类似都是用一个村一个倒,类似负负得正嘛。具体分析一下两个栈实现队列,设这两个分别为s1和s2,我们从入队开始,最开始只要直接压倒s1中,然后出队,此事要先将元素全部弹到出再放到s2中;现在的问题是当两个栈都有东西的时候要怎么处理,其实分析一下我们发现s2中的元素就是最先进的,所以pop只要弹s2就行,同理压栈只要压到s1里面,代码如下: 1 #include 2 #include 3 #include 4 using namespace std; 5 const std::string PUSH="PUSH"; 6 const 阅读全文
posted @ 2014-04-04 23:38 mrbean 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 关于链表的经典面试题,说实话我第一次看到这个的想法是双向链表,毕竟直接使用链表的话好像这个结构很符合要求了(其实方便的找到前一个元素也是双向链表的设计初衷吧),于是我写出了如下的代码: 1 #include 2 #include 3 using namespace std; 4 5 class Node 6 { 7 public: 8 int value; 9 Node* next;10 Node* front;11 Node()12 {13 value=0;14 next=NULL;15 fro... 阅读全文
posted @ 2014-04-04 10:48 mrbean 阅读(364) 评论(0) 推荐(0) 编辑
摘要: Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力。下面就通过示例记录一下map的使用:一、向map中插入数据1、使用pair:2、使用value_type插入3、使用数组下表插入当然使用者三种方法也不是完全一样的,简答的说就是前两种方法不能够插入第一个键值已经存在的了,而第三种方案则可以覆盖。二、求map的大小通用的size()函数三、迭代器有两种迭代器,一种是上面我们使用过的,叫做正向迭代器,另一种是反向迭代器,使用方法如下另外我们也可以不使用迭代器,橡数组一样输出,但是这样有一定局限性。。。四 阅读全文
posted @ 2014-03-21 23:18 mrbean 阅读(459) 评论(0) 推荐(0) 编辑
摘要: 所谓的出入栈问题有两种比较常见的描述:1、现在有若干个数,进行出入栈操作。要求不能进行非法的栈操作(也就是说栈为空的时候不能进行弹栈),现在给你一个总次数(当然我们知道这个必须是偶数),要求判断有多少种可能的序列。2、现有若干个数目相等的+1和-1,现在要求进行操作,也就是选择不同的顺序将他们加起来,但是要保证没一个时刻式子的值都大于零,问有多少种可能的排列顺序。 看到第二个问题我们很容易会想到这是一个数学问题,而且还肯能就是个排列组合,但是试一下我们会发现不能找到这样的公式(至少我现在还没见过)。其实这个问题是一个非常简单的动态规划问题。 首先我们可以看到,没选择下一步的时候都是使式子(第一 阅读全文
posted @ 2014-03-06 00:50 mrbean 阅读(1638) 评论(0) 推荐(0) 编辑
摘要: 我们判断数据库设计的好坏很大程度上是根据范式的,简单总结一下我对范式的一点理解:第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。第二范式(2NF)就是非主属性完全依赖于主关键字。第三范式(3NF)在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。简而言之,第三范式就是属性不依赖于其它非主属性。BC范式(BCNF)也就是排除了属性之间不存在传递函数依赖(不润主属性与非主属性)这几个范式一步一步地约束了数据可的设计: 从第一范式到第二范式消去了主属性对键的部分依. 阅读全文
posted @ 2014-01-21 21:09 mrbean 阅读(1047) 评论(0) 推荐(0) 编辑
摘要: 看到这个问题我们的第一反应就是根据二进制的位直接统计,这也是我已开始想到的,于是有了如下代码这份代码的逻辑很清晰,就是将这个数慢慢的移,每一位都进行判断最终得出结果,乍一看没什么错误。并且进行测试会发现对于正整数它运行的非常好,没有什么错误,但是我们尝试一下负整数就会发现他有巨大的问题。这里首先要提一下,计算机对负数的存储是按照其正数的补码表示的,所以进行这种简单的移位判断就不可避免的会出现错误。这里我们就要提到第二中解法,这种方法不金额以解决负数的问题,而且可以提高算法的效率。先看代码:这种解法的精髓就在这个操作上面,我们首先要考虑x和x-1的二进制的差别在哪,我们列出几个从这些例子我们不难 阅读全文
posted @ 2014-01-20 22:17 mrbean 阅读(3469) 评论(0) 推荐(0) 编辑
摘要: 虽然说我不怎么会用java写一些东西,但是java里的biginteger我还是很喜欢的。这个类解决了,我们在其他很多语言中遇到的问题:大数。比如在C++中我们要计算一个大小超过long long的数就必须采取很多的代码来解决。简单一点的课余采取用几个数来存数,复杂的我们就要用到字符串的处理通过,通过字符串我们能够处理任意大的数(理论上,实际由于内存之类的原因还是不行的)。 但是使用字符串的形式实现的方式是十分复杂的。我们就最简单的加法为例说明一下,并展望一下乘法甚至是除法的处理方式。字符串处理大数的本质就是“手工计算”,这里的手工当然不是让你离开电脑去自己算,而是说让电脑按照我们手算的... 阅读全文
posted @ 2013-12-23 00:31 mrbean 阅读(3249) 评论(0) 推荐(0) 编辑
摘要: 今天有看到一个园友发了一篇自己实现的刮刮了,感觉挺好玩的就下下来看看,结果运行不了,想想也不是太难就决定自己实现一个,还是花了点时间的,源码下载链接在最下面(这个绝对有用,除非你的浏览器不支持canvas)。废话不多说,讲解一下几个重要的点吧: 一、首先是刮刮卡的效果,很自然想到两层,于是我采用了两 阅读全文
posted @ 2013-12-07 22:26 mrbean 阅读(3485) 评论(7) 推荐(3) 编辑
摘要: 一、最长公共子序列 经典的动态规划问题,大概的陈述如下: 给定两个序列a1,a2,a3,a4,a5,a6......和b1,b2,b3,b4,b5,b6.......,要求这样的序列使得c同时是这两个序列中的部分(不要求连续),这个就叫做公共子序列,然后最长公共子序列自然就是所有的子序列中最长的啦。 既然是动态规划,难点肯定是在转移方程那了。首先我们用一张网上流传的图: 我个人觉得这张图最好的阐述了这个问题的解法。下面说一下我的理解:首先我们要考虑怎么表示LCS中的各个状态,这个知道的可能觉得很简单,但是不知道的可能想很久也想不到,我就是在看到这张图才真正理解为什么要采用二维数组表示这... 阅读全文
posted @ 2013-12-06 23:47 mrbean 阅读(864) 评论(1) 推荐(1) 编辑
摘要: 所谓错排公式就是说给你一个序列,这个序列有n个数,然后要求这个序列的排列中有几个满足每个元素都不在原来的位置。这个是直接有一个地推关系的:f[n]=(n-1)*(f[n-1]+f[n-2])。证明如下: 首先我们知道f[1]=0,f[2]=1.然后当n大于等于三的时候我们考虑他们之间的关系。将各个元素标号为1到n。那么我们考虑第n个元素,它的能力在于是将自己与前面的一个换位置,也就是说它的前面可以是已经完成的错排或者是有一个元素没有错排。那么有两种情况:1、前面有一个元素在本身的位置,这时最后一个元素必须选择同他交换。没装错的可能是任意的一个,也就是有(n-1)*f[n-2]种2、前面的... 阅读全文
posted @ 2013-12-05 23:51 mrbean 阅读(686) 评论(0) 推荐(0) 编辑
摘要: 网页作为一种信息的载体,文字还是很重要的一部分的,这里就总结一下他的几种设置方法一、font标签 font使用来设置文字的标准属性,但是由于一系列的原因已经不建议使用font标签来指定属性了,还是用css比较好,但是本文还是会介绍一下这种方法。font中可以设置很多种类的属性,比如(括号里面是效果): 1、颜色:设置红色你好 (你好) 2、设置大小:设置字号为2和8字号2字号8 (字号2字号8) 3、字体类型:face属性,可以用来指定字体,可选值有很多,这个属性只支持你机器上存在的字体 (宋体楷体)二、css设置 css设置字体样式远比用font标签更加强大,涉及的面更... 阅读全文
posted @ 2013-11-27 23:36 mrbean 阅读(1561) 评论(0) 推荐(0) 编辑
摘要: 一、load() 这是最简单的一个函数,传入一个url他会异步加载该url的内容,然后将内容插入每一个选中的元素中,替换掉其中已经存在的内容。 所以最简单的用法是:$("#myDiv").load("htmltest.html"); 当然这里的url不是只有html的,像什么txt、php之类的都是可以的。 如果不是想加载整个文档的话可以在url后面加上一个jquery选择器,类似“xxx.html #aaa” 另外load其实还有两个可选的参数,第一个是数据(类似于是调用了post),第三个可选参数是回调函数。 这样一个完整的load可以是这样$(). 阅读全文
posted @ 2013-11-24 18:16 mrbean 阅读(663) 评论(0) 推荐(1) 编辑
摘要: 最近有打算写个迷宫玩玩,无意中发下了这个库,很强大!又是开源在github的,并且有一个相当酷的demo。这个库不仅支持浏览器端的运行,而且可以运行在node.js上。怎么用到服务器上这里就不涉及了,主要还是翻译一下官方的demo。一、基本应用 首先我们要定义一个二维的图var grid = ... 阅读全文
posted @ 2013-11-20 23:56 mrbean 阅读(6005) 评论(0) 推荐(6) 编辑
摘要: jqm转场闪屏是用phonegap生成apk非常容易遇到的问题,暂时貌似还是没有完美的解决方案,网上暂时有一些方案,个人都尝试了一下发现还是改背景比较有效,总结如下:改变默认css文件:1 .ui-page { 2 backface-visibility: hidden; 3 -webkit-backface-visibility: hidden; /* Chrome and Safari */ 4 -moz-backface-visibility: hidden; /* Firefox */ 5 } 改变转场速度(转的快一点闪也稍微好点):1 .in, ... 阅读全文
posted @ 2013-11-15 09:57 mrbean 阅读(887) 评论(0) 推荐(0) 编辑
摘要: recv函数有两个作用,不仅是接收其他节点发送的包,而且当节点接收到其他包的时候也会调用recv()首先给出NS2中recv的源码,和一些注释: 1 void 2 Mac802_11::recv(Packet *p, Handler *h) 3 { 4 struct hdr_cmn *hdr = HDR_CMN(p); 5 /* 6 * Sanity Check 7 */ 8 assert(initialized()); 9 10 /*11 * Handle outgoing packets.12 */13 if... 阅读全文
posted @ 2013-11-14 21:39 mrbean 阅读(676) 评论(0) 推荐(0) 编辑
摘要: 突然想用html5的离线缓存,但是一直没有成功,在各种群里问发现很多人都没什么经验,最终终于在各种论坛找到解决方案了。下面就简单记录一下相关情况。一、离线缓存的优点我们都知道离线缓存主要是用来减少web应用对网络的依赖的,也就是说让你能偶在没网的情况下也能使用(当然是某些功能)。初看有点像传统的缓存,但是还是有很大不同的,首先离线缓存可以缓存整个应用,而普通的则是缓存单个界面;离线缓存的更新更加方便,可以动态通知,而传统缓存则是通过返回状态码来判断更新的;离线缓存还可以指定有网和没网分别加载什么文件,这点传统的缓存则做不到。二、基本使用离线网络应用程序的核心是一个 content type ( 阅读全文
posted @ 2013-11-14 00:12 mrbean 阅读(1003) 评论(0) 推荐(0) 编辑
摘要: uC/OS II(Micro Control Operation System Two)是一个可以基于ROM运行的、可裁减的、抢占式、实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,是和很多商业操作系统性能相当的实时操作系统(RTOS)。ucos由于它的开源性得到了几位广泛的应用。我这次阅读的主要目的也是通过它加深自己对操作系统相关概念的认识。一、ucos的代码结构 由于ucos可以在不同平台上移植,其代码分为于处理器无关的的代码和与应用程序相关的代码。具体如下图: :二、ucos的工作原理 在uC/OS-II里,每个任务都... 阅读全文
posted @ 2013-11-13 00:39 mrbean 阅读(869) 评论(0) 推荐(0) 编辑
摘要: 并查集学过很久了,和其他算法一样,都快忘了。这段时间里要时不时抽一点时间出来复习一下他们了。。。废话不多说,进入正题 网上关于并查集的介绍已经是满天飞了,所以写这篇随笔或许不能介绍出什么新东西,我能做的就是写的尽可能简单,顺便自己回顾一下。一、什么是并查集 并查集,顾名思义就是用来并和查的集合。首先它是一个集合,然后这个集合的主要作用是完成一些合并和查找的工作。可以结合应用深入理解。二、并查集有什么用 并查集最简单的应用就是类似“通畅工程”或者是找一堆人联系的方面,在这类问题中你不需要知道他们到底是什么关系,只要知道他们是哪一类就好,这种大概就是纯粹的使用并查集的方面,另外并查集在最小生... 阅读全文
posted @ 2013-11-12 00:13 mrbean 阅读(357) 评论(0) 推荐(0) 编辑
摘要: 今天在把原来用C写的程序移植到javascript上,但是有个地方一直调不通,后来才发现是js奇葩的字符处理出的问题。c中使用的字符处理比如加上一个字符值强制转换一下,在js中就行不通了。 但是js提供了处理的函数:字符转ascii码:用charCodeAt();ascii码砖字符:用fromCharCode();示例代码: 1 结果显示:65Az65其实这次的经历也说明这些语言基本是相通的,知识一些细节的不同需要耗费一定时间去转换 阅读全文
posted @ 2013-11-06 23:17 mrbean 阅读(1025) 评论(0) 推荐(0) 编辑
摘要: ns中模拟出来的时间最终会以trace文件的形式告诉我们,虽然说一般都是用awk等工具分析trace文件,但是了解trace文件的格式也是必不可少的。下面就介绍一下无线网络模拟中trace文件的格式。trace文件的最开始时一段形如M 0.0 nn 4 x 500 y 500 rp DSDVM ... 阅读全文
posted @ 2013-11-01 00:43 mrbean 阅读(1387) 评论(0) 推荐(0) 编辑
摘要: 修改这两个值是在tcl中进行的,加上Phy/WirelessPhy set CSThresh_ 1.559e-11 ;#550mPhy/WirelessPhy set RXThresh_ 3.652e-10 ;#250m即可。关键是这里的550m以及250m对应的CSTresh_和RXTresh是如何得到的。这里要用到threshold工具。threshold.cc放在C:\cygwin\home\leiming32\ns-allinone-2.29\ns-2.29\indep-utils\propagation目录下(可以把它拷贝到另一个目录)。需要进行一些简单的修改才能执行g+... 阅读全文
posted @ 2013-10-24 15:36 mrbean 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 最近ubuntu更新了,就想把它重新装回来试一下,但是由于种种原因划分磁盘不太方便,很自然就想到了wubi,这个不仅仅安全性高,而且比直接装系统快多了,而且方便。但是在线安装实在是太慢了,所以就找到了一个快捷的方法:先下载好镜像文件。直接将iso文件中的wubi.exe解压出来,然后将压缩包名字改成installation.iso。放到统一个文件夹,直接断网(不断网不知到行不),然后运行wubi按流程走,五分钟之内解决。 阅读全文
posted @ 2013-10-18 22:47 mrbean 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 康拓展开:$X=a_n*(n-1)!+a_{n-1}*(n-2)!+\ldots +a_2*1!+a_1*0!$ X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0! 其中,a为整数,并且0>>import itertools2 >>>lis... 阅读全文
posted @ 2013-10-13 18:47 mrbean 阅读(1072) 评论(0) 推荐(1) 编辑
摘要: 突然看到一堆的日起计算的相关问题就参考了一些代码用C++写了个程序,主要思想就是日期的偏移全部换成相对同一个日期的再计算,这样简单多了,附上代码,有问题欢迎指正 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 //日期函数 7 int days[12]={31,28,31,30,31,30,31,31,30,31,30,31}; 8 struct date{ 9 int year,month,day;10 date(int y=0,int m=0,int d=0)11 {12 ... 阅读全文
posted @ 2013-10-13 00:03 mrbean 阅读(381) 评论(0) 推荐(0) 编辑
摘要: 最近做了一个要求求一个数约数个数的题,后来发现居然有这方面的定理,也就是约数个数定理,所以赶紧记下来。大概是:对于一个大于1正整数n可以分解质因数:n=p1^a1*p2^a2*p3^a3*…*pk^ak,则n的正约数的个数就是(a1+1)(a2+1)(a3+1)…(ak+1) .其中p1,p2,p3,…pk都是n的质因数;a1、a2、a3…ak是p1、p2、p3,…pk的指数。具体情况可以百度之;附上一份代码: 1 #include 2 #include 3 #include 4 using namespace std; 5 int main() 6 { 7 int t; 8 ... 阅读全文
posted @ 2013-10-09 22:35 mrbean 阅读(8238) 评论(0) 推荐(3) 编辑
摘要: javascript parallel.js 阅读全文
posted @ 2013-08-31 00:15 mrbean 阅读(947) 评论(0) 推荐(0) 编辑
摘要: 今天闲着看了一下Parallel.js。这个库暂时貌似还没有什么中文的介绍(可能暂时用的人都不多吧)。所以就只能上github找它得源码和介绍看看了。貌似它的代码也不多,以后可以深入研究一下。先简单翻译一下介绍吧:构造函数Parallel(data, opts)这个data是一个你希望操作的数组,数据会保存在内存中直到完成工作,你也可以通过.data访问。你可以对数据进行一系列的操作。不过你的值都必须要序列化成JSONopts是可选的参数: evalPath指定指向eval.js的路径,具体什么用暂时还没有看懂,各位有知道的可以告诉我。 maxWorkers指定最大线程数,默认值是4。 ... 阅读全文
posted @ 2013-08-28 00:56 mrbean 阅读(1812) 评论(1) 推荐(0) 编辑