随笔:主题“那字字珠玑解释的古文”

不是每本书都会有一个 Kindle 版。阅读纸质书籍时,看到感动自己的句子,只能默默用笔划出来;合上书,也就忘了。有时候,真有点想把这些句子剪下来贴成剪报的冲动。
当然,你也许宁愿把它们用手机一个字一个字地打出来。那么,涂书笔记就正是你需要的:它能将手机的优势发挥到极限,从此解放你的双手。
每当开始读一本书,就来这里搜一下书名,即可在书库中找到。当然,你也可以自定义笔记本的名称。
当读到让自己感动的句子,就把摄像头对准相应的段落,按下快门。
下面就是涂书笔记的精华:「涂」。用手指在想要摘录的文字上涂抹,就这么容易!
接着,涂书笔记就会使用强大的 OCR 功能,结合百度强大的搜索能力,为你识别出涂抹的文字。再也不会用到键盘啦!一开始还有点怀疑涂书笔记的识别能力,于是翻遍整本书到处拍拍涂涂,谁知涂书笔记都毫无压力、一字不错地完成,确实强大。当然,如果它真的弄错了什么,你也可以进行修改。
最后,为这段笔记标上页码,再写点心得,保存!
还可以方便地书友们分享。
最后,稍微吐槽几句:涂书笔记暂不支持对笔记的搜索,所以读完以后回想起某个句子,再回来查找就挺不容易。另外,应用目前对全英文内容的识别能力似乎不好。
涂书笔记适用于 iOS 5+ 的 iPhone 和 Android 4.0.3+ 的设备,iOS 版本大小 12.6 MB,Android 版本大小 7 MB,完全免费。
Carpe diem. Seize the day.
一拍一涂,字字珠玑 – 涂书笔记 #iOS #Android 4+Posts - 98,
Articles - 0,
Comments - 311
男,程序员,关注 c++,欢迎技术探讨,平时看书,写博客。
21:03 by 捣乱小子, ... 阅读,
&写在最前面的 就像上一篇文章说的,“编程永远是后话”!在有了可靠的问题分析过程和数据结构的选择,能正确运行的“二分搜索”代码出现之前,把其主要的思路先在草稿上实现,即伪代码。但由于伪代码执行结果的不确定性,需要有一个验证的过程。笔者非常不喜欢这个过程,因为这个过程很繁琐,而且推出的结论不一定是正确的(毕竟没有实实在在在机器上运行得到正确的结果),在笔者看来,给一个算法题,知道用什么算法,数据结构,如果能用伪代码实现,离成功已经不远了。
但后来我又反驳了自己的观点(矛盾体啊),理由:至少到目前为止,写的都是小程序、小算法题,验证过程可能已经被潜移默化解决了。实战演练:动态规划矩阵连乘最优组合
麻烦来了,今天晚上在实现“动态规划矩阵连乘最优组合”的算法在这个问题中需要填表,通过动态规划解体,就因为表的下标混乱,所以填表的过程比较枯燥(debug了好多次)。 我先在稿纸上用伪代码大概解决了这个问题,但是在真正敲写代码的时候,却发现“伪代码”除了整体上的走向之外(大概的结构),很多细节都有问题。
“大概”伪代码:for&i=[0,n-1)&&&&&for&j=[0,n-1-i)&&&&&&&&&col&=...&&&&//col是填表元素的列&&&&&&&&&min&=...&&&&&&&&&for&k=[0,i)&&&&&&&&&&&&&t&=....&&&&&&&&&&&&&if&t&min&&&&&&&&&&&&&&&&&t&=&min&&&&&&&&&a[j][col]&=&其中省略号内的东西待敲进去之后都不正确!需要重新分析这个填表的过程。捣乱的分析过程
顺序填表分成n-1组,编号i=[0,n-2],如图:
而每组有j=n-1-i个元素需要填写。于是伪代码的前两行是这样的来的for&i=[0,n-1)&&&&&for&j=[0,n-1-i) 首先把当下需要填写元素的列值得出是col = i+j+1;通过观察很容易发现的;而j即为当下需要填写元素的行,于是(j,col)就是需要填写元素的位置。&而min的计算是瓶颈,画图
可以发现计算min的两个辅助元素的(第一个元素)行和(第二个元素)列都不被当下需填写元素的(j,col)决定了。于是: min = a[j][j] + a[j+1][col] + tab[j]*tab[j+1]*tab[col];
接下来的t的计算由上面的min的计算的出来的: & & & t = a[j][j+k+1] + a[j+k+2][col] + tab[j] * tab[j+k+2] * tab[col+1];
其实是一样的,只不过红色部分多加了个k+1。
分析过程不够严谨细腻,但是纵观下来,自己有一个清晰的思路。View Code&void&optimal_matrix(int&*&tab,int&n)&{&&&&&assert(n!=0);&&&&int&**&a&=&new&int&*[n];&&&&for(int&i=0;&i&n;&i++)&&&&&&&&&a[i]&=&new&int[n],&&&&&&&&&::memset(a[i],0,sizeof(int)*n);&&&&int&i,j,t,min,&&&&&for(i=0;&i&n;&i++)&&&&&&&&&a[i][i]&=&0;&&&&for(i=0;&i&n-1;&i++)//组计数器&&&&&{&&&&&&&&&for(j=0;&j&n-1-i;&j++)//每组个数计数器&&&&&&&&&{&&&&&&&&&&&&&&col&=&i&+&j&+&1;&&&&&&&&&&&&&&assert(col+1&n+1);&&&&&&&&&&&&&&min&=&a[j][j]&+&a[j+1][col]&+&tab[j]&*&tab[j+1]&*&tab[col+1];&&&&&&&&&&&&&for(int&k=0;&k&i;&k++)&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&assert(j+k+2&n);&&&&&&&&&&&&&&&&&&t&=&a[j][j+k+1]&+&a[j+k+2][col]&+&tab[j]&*&tab[j+k+2]&*&tab[col+1];&&&&&&&&&&&&&&&&&&if(t&min)&min&=&t;&&&&&&&&&&&&&&}//&for&&&&&&&&&&&&&&a[j][col]&=&&&&&&&&&&}//&for&&&&&}//&for&&&&&cout&&&&a[0][n-1]&&&&&&&&&delete&[]&a;&要做到上面的条条框框实在是不容易的,但是如果养成“条条框框”的习惯的话,即使没有稿纸,只操手MSPAINT,相信敲代码的效率会提高的。
断言的魅力& “脚手架”简单来说是“验证程序”的程序,但笔者认为“断言”的魅力更大些。在每一个程序中,有一些变量数据是至关重要的,经常Debug就是为了这些变量的检测,看是否和预期中的结果一样;如果不一样我的做法就是:结束debug,开始艰苦的错误排查,这个过程非常头疼。assert能够可以扫清很多的错误细节,包括除数为0,数据超出规定的范围,数组下标越界云云。所以添加断言,能在逻辑上保证你的程序不会出错,即使现实并非如此。
故在上面“动态规划矩阵连乘最优组合”中,添加了
assert(n!=0);&assert(col+1&n+1);&assert(j+k+2&n);&来保证数组下标越界问题,很明显,如果下标越界,将是毁灭性的bug。
另外,添加了一个show函数:
void&show(int&**&a,int&n)&{&&&&&for(int&i=0;&i&n;&i++)&&&&&{&&&&&&&&&for(int&j=0;&j&n;&j++)&&&&&&&&&cout&&&&setw(6)&&&a[i][j];&&&&&&&&&cout&&&&&&&&&}//&for&&&&&cout&&&&&}这是验证程序的一部分,另外关于程序运行时间外链一篇文章,里面的方法不错,不仅可以精确到ms,还可以是us,一个算法题 非常遗憾,第67章看懂没多少,大概是要读者明白如何预见程序的开销!!相反,第八章有趣多了。第八章提出了找出一个数字序列中最大的、连续的子序列,并且规定全负子序列的和为0。 “如果没有阅读过《编程珠玑》跳到第四点。”最原始穷举的算法时间开销大到O(n^3);&另一种穷举的算法,即平方算法。通过保存中间结果或者预处理数据,省去了之后重复的计算,是备忘录算法(简单的动态规划),开销下降了一个数量级O(n^2);&分治法,这个真没想到,开销再次下降O(nlogn);&以前做过类似的题目,所以最先想到的就是这个方法。形象点就是,“边吃边拉”——扫描算法,运行时间为O(n)。&for&i=[0,n)&&&&&t&+=&a[i]&&&&&if&t&max&case&&&&&&&&&max&=&t&&&&&if&t&0&case&&&&&&&&&t&=&0&end.&
ACM初赛的题目用的就是这个“边吃边拉”,不过和这里的有点不同,实际上是贪心算法:&
课后习题第10题,“找到总和最接近0的子序列或者最接近某个数的子序列”,尝试着用上面的“边吃边拉”算法解决,但是没有成功;只能按着上面说的平方算法,伪代码如下:
nearest&=&INF&for&i=[0,n)&&&&&for&j=[i,n)&&&&&&&&&t&=&tab[j]&-&tab[i]&&&&&&&&&if&nearest&|t|&case&&&&&&&&&&&&&nearest&=&t&end数组用负数索引
第八章最有趣的地方就是“数组索引下标居然可以出现复数”!写了将近两年的程序居然还不知道有这个东西,略有自惭形秽的味道。
设原数组a[n],pa = &a[1],那么pa[-1]亦即a[0]。但是,这么巧妙的东西,该怎么用? 大家一开始都有写过“冒泡排序”,看看利用这个“巧妙”能有什么效果?给出伪代码:
bubble(a,n)&&&&&mustbe(n&1)&&&&&pa&=&&a[1]&&&&&for&i=[0,n)&&&&&&&&&for&j=[0,n-i)&&&&&&&&&&&&&if&a[j]&pa[j]&case&&&&&&&&&&&&&&&&&swap(a[j],pa[j])&end 是的,它既没有改善冒泡的运行开销和效率,但是代码美观了很多:通过把pa定位在a的第二个元素上,所以a[j]和pa[j]其实不是同一个元素,pa[j]在a[j]的后面,即便他们的下标相同。笔者突然想到了一个比较现实而有用例子,大家一开始学习编程的时候,几乎都遇到过这样的题目,给定一个数字数组,求数组的各元素的总和,最原始的想法:sum(a,n)&&&&&for&i=[0,n)&&&&&&&&&sum&+=&a[i];&end看看结合上面的“巧妙”的伪代码:
sum(a,n)&&&&&pa&=&&a[n-1]&&&&&t&=&n&1;&&&&&for&i=[0,t)&&&&&&&&&sum&+=&(a[i]+pa[i|0x8000])&&&&//下标变为负数&&&&&if&n&1&case&&&&&&&&&sum&+=&a[t]&end没错,他还是做了n次的加法,一次都没减,但是也有小小的优化:for循环里对i的判断判断和自增都减半!加减开销比位运算大的。“啊哈,灵机一动!”。非常文艺青年的一个优化,非常诗意...结尾
第八章开始,“shit、fuck,cao”等感叹多了起来(看看《》就知道为什么有这些感叹了),而这都是笔者所要的读书的感觉。下一篇笔记会多写点“代码优化”的东西,因为在读过的《深入理解计算机系统》里也有很多相关的话题!本文完 Friday, April 06, 2012捣乱小子&&用一句古文概括“当善良的人撕下面具,你连下跪的时间都没有”的意思,要那种字字珠玑的._百度作业帮
用一句古文概括“当善良的人撕下面具,你连下跪的时间都没有”的意思,要那种字字珠玑的.
用一句古文概括“当善良的人撕下面具,你连下跪的时间都没有”的意思,要那种字字珠玑的.
时若善者去其伪,汝之跪伏犹是不及!韩愈令人心酸的高考经历
  被苏轼评为&文起八代之衰&的韩愈,从20岁开始参加科举考试,一连三次,当他那字字珠玑的答卷到了判官手里,却如同废纸一张。
刻苦攻读无结果
  公元787年,韩愈在取得乡贡资格后,再次前往长安,应礼部进士试。但这次考试失败了。接着,他又考了两次,均名落孙山,这对韩愈打击很大,他感到愧对祖先、愧对家人,写诗云:&古人虽已死,书上有遗辞。开卷读且想,千载若相期。&是韩愈学习不认真吗?肯定不是。
  韩愈苦学,历史上是很有名的:他身穿布衣,每天只吃两顿饭,其余时间都用来读书、访友。有时他读书入迷,要到半夜才睡觉。为了博览群书,他&口不绝吟于六艺之文,手不停披于百家之篇&.即使在冬天,韩愈也舍不得生火取暖,砚台的墨汁结冰了,他就用嘴呵呵气,使冰融化,然后再写;手冻僵了,就搓搓暖热,再写文章;读书读到口干舌燥,就喝口菜汤,继续吟诵揣摩。韩愈苦读、背诵、深思,不断记笔记,提炼纲要,记述历史事件的前因后果,研究并加以分析,把前人写的文章都吃透了。但他的写作方法不讨主考官的喜欢,譬如第三次考进士,出的试题为&不迁怒不贰过&,大意是&若自己不高兴,不要转移到别人身上,不犯两次同样的错误&.韩愈看后,立即有了主题,他没有用骈体,而是用古文体挥笔而就,写得很顺利,但主考官看了以后,却把试卷放在一边。
换个主考中进士
  公元792年,韩愈再次来到长安,第四次参加进士考试。这一次,主考官是宰相陆贽,试题和上年的差不多,韩愈没有犹豫,一字不改地把去年的旧作写在卷面上,很快交卷了。陆贽看后,感到此卷似曾相识,反复看了几遍,自语道:&好文章!完全是古文风格,没有半点骈体文的味道,去年怎么没有录取?差点埋没人才了! &就这样,韩愈考中了进士。其实,韩愈这次考上进士,也与其他考官梁肃、王础有关,梁、王这次辅助主考官陆贽,两人都爱好古文,都欣赏韩愈,都有提携韩愈之意。所以,韩愈25岁考上进士,是有多方面原因的。
仕途多舛被同情
  考取进士并不等于有官可做,这只是入仕途的第一步。礼部只管进士,派官还要经过吏部的&守选&考试,其考试名目多,普通的是&书判拔萃&,入高官的是&博学宏辞&.韩愈心想自己满腹经论,考&博学宏辞&不会有什么问题。谁知,与当年考进士的命运一样,连续三年,均一败涂地。无奈,他只得另辟蹊径。两个月内给当朝宰相写出三封情真意切、辞藻华丽的陈述书。他陈述自己&遑遑乎四海无所归,恤恤乎饥不得食&,请求垂怜一官半职。结果石沉大海,杳无音讯。于是,他不得已而求其次,投奔地方军阀。可只干了两年多,幕主便死了;之后又投奔了一个军阀,可还没上任,幕主又死去了。韩愈真是霉运多多,可谓&靠山山倒,靠水水流&
  幸而后来,他的《进学解》被当时的宰相看到,惊叹不已,很同情他的遭遇,也欣赏他的才干。于是任命韩愈为五品刑部比部郎中兼任史馆修撰,从此韩愈进入高官阶层。据《老年生活报》
(责任编辑:陈冬梅)
------分隔线----------------------------
避讳观念源于原始禁忌,最初的原因是名字保密,与巫术崇拜及其恐惧有直接关系。商...
1938年4月的抗日宣传周,中山公园举行歌咏大会,冼星海、张曙一起指挥演唱《义勇军...
1850年2月末,道光帝驾崩,咸丰帝登基。一个月后,在帝国偏远省份广西,前教书先生...
对于汪烈山,陈锡联把他视为塑造自己为将之道的好老师。在回忆录中,他真诚地说:...
10月4日下午,蒋介石收到宋美龄“不来日”的回电。10月8日,倪桂珍回国,蒋介石到神...
大家一看,果然是李立三走进追悼会会场,后面还带了10多个人。周恩来一看,激动地...
Powered by 大西北网络 版权所有
建议使用IE8.0以上版本浏览器浏览
Copyright (C)
Dxbei Corporation. All Rights Reserved
您是 位访客!

我要回帖

更多关于 字字珠玑解释 的文章

 

随机推荐