看了《科幻大师》前两集

貌似上一篇文章中说错了,应该只出来了两集,第三集没找到。

我把这两集看完了,简单说一下感受。

每一集的开头都有这么一句:“很久以来,我们都在探寻生命是如何开始的,生存的目的是什么,我们又将去往何方……”,配的动画也不错,感觉很爽。

第一集是讲一位女心理医生帮助失忆的总统恢复记忆。背景是在世界核战过后,仅存的八百多人都躲在地下掩体中。而导致这一切的就是那位总统!他下了错误的决定,从而引发核战。感觉这集不错,情节人物都可以。片尾提出一个值得深思的问题:“当多数人的命运掌握在少数人手中时,掌权者的失职能被原谅吗?”

第二集感觉就不怎么样了,说实话,有点儿假。故事大体是说外星文明突然降临地球,警告战争中的人类,并威胁如不停止战争就要占领地球。故事有点儿老套不说,里面的细节也有些 假,比如,外星人能够迅速找出美国部署的全部核弹发射井并使之失灵。(不过里面的女中尉很漂亮的说~~)

这两集给我们传达了同样的信息——停止战争吧,愚蠢的人类!记得一篇文章中说过,人类的道德比人类的科技落后了几千年!我非常同意。记住:人类在近两千年的历史中,全世界彻底没有战争和冲突的时间总共只有五十八天。

Masters of Science Fiction

说来惭愧,好久没有在SF分类中发表文章了。今天得发一篇了。

最近出了一部Masters of Science Fiction,是abc根据一些科幻短篇故事改编,每一集都讲述着一个完全不同的科幻故事。据说还是霍金解说。第一季暂时只预定了六集,现在前三集已经放出。下面是一些相关链接:

官方网站:http://www.mastersofscifi.com/site/
abc链接:http://abc.go.com/specials/mastersofscifi.html
tv.com链接:http://www.tv.com/masters-of-science-fiction/show/58459/summary.html
imdb链接:http://www.imdb.com/title/tt0772139/

有兴趣的可以BT下来看看。

备份

我怀疑是不是用Linux时间长了人都会变懒,起码我是。

记得以前还有Window$的时候(两年多以前了),备份挺勤快,因为那时候貌似隔三岔五就要重装一次系统。现在好了,用上Linux了,那么的稳定,不升级系统的话三四年都不用重装一次!也因此养成了一个懒惰的毛病——硬盘里的东西不再备份了!

今天终于下定决心要备份了!一是为了保护硬盘里的数据,二是准备升级FC5到FC7。

先整理光盘,把以前刻的,买的,骗来的光盘都拿了出来。哎,本以为应该很多,可一看也不多了,送出去了若干,被骗走了若干……

仔细一看,里面的光盘大体上分三类。一部分是Window$上的盗版软件(再次感叹中国盗版业如此发达!),有VB,VC,Office,优化大师等等,现在我是用不到了,准备送人。(有需要的人可以留言,免费赠送!

另一部分是买计算机书或者杂志送的光盘,大多数都是看一遍就完的,送出去不少,就留了几张值得再看的。哎,又回想起美好的旧时光啊~!想当年我们高中那会儿,最爱看的就是《电脑爱好者》,《电脑报》和《网友世界》。第一个一般是傻乐同学买,每次带到学校都被哄抢,在班中后面N个男生中传阅;第二个一般是阿元同学买,我也就经常屁颠屁颠地从教学楼这头跑到那头去他们班借这来看,然后再在我们班被哄抢……最后一个一般是我和别人买。哎,那时候为了买这杂志,经常是从饭钱里抠啊!不过这杂志做的光盘是相当好,我现在还留了两张呢。瞧,那时我们多么年轻~~!

剩下的就是我以前勤快时的备份了,最早的可以追述到04年!最多的还是从网上下的电子书,杂七杂八啊;其次应该是歌曲,里面最多的恐怕是刘若英的歌和MV了;还有一些就是Linux上的常用软件。

还有个把张就是系统安装盘,不是Window$,是Linux!哈哈,这下我可以倚老卖老了!想当年,我用的Linux那还是Red Hat 7.2(Fedora Core还没出世呢),就记得中文显示很差,基本上全是??;KDE经常崩溃,比现在的Window$错误报告还多。再看看现在的Linux,那个炫啊,那个好啊,那个稳定啊!现在的娃们真有福!再次感叹Linux发展太快了!

对了,整理过程中还有个意外收获——居然发现了两张没用过的光盘!窃喜中……干脆直接把/home下的所有东西复制过去,反正空光盘那么多~~嘿嘿!

再谈Quicksort和Binary Search

众所周知,Quicksort是大牛C.A.R. Hoare于1962年发明的(wikipedia上说是1960,但paper上写的是1962),当时他那篇paper现在可以免费下载了。短短12页(其实是11页,而且每页利用率不高)就把quick sort分析得详详细细,头头是道了。其实这个算法只不过是这位牛人职业生涯中最琐碎的贡献,他的主要贡献还是Algol60。那个时候可是牛人辈出的年代,Ken Thompson牛当年可是用汇编写操作系统和编译器的,搁到现在连想都不敢想啊!偶滴神啊!咳咳,不好意思,跑题了……

现在,凡是一本和“数据结构” 或者“算法”靠边的书就必然会提到Quicksort,很多还给出自己的实现。无奈,绝大多数代码都很丑陋(如果不能说非常丑陋的话)。好不容易,我在BWK的牛著《The Practice of Programming》中找到了一个简洁的实现。请欣赏:

接下来我们谈谈Binary Search。1946年,第一个Binary Search算法出现;1962年,第一个“正确”的Binary Search算法出现,最前面十八个都错了。1986年,Jon Bentley在课堂上和《Programming Pearls》这本书中,说明了这么简单的演算法(1962版)可以犯下多少的bug。2006年,书中那个大众引用的程式被抓到integer overflow bug。这个bug是出在这个该死的语句上:

int mid =(low + high) / 2;

您看出哪里错来了么?其实是low+high超出int表示的正数范围时就会变成负数,这时mid也跟着错了,而后面用mid取数组元素自然也不对了。修补就很简单了:

int mid = low + ((high - low) / 2);

下面是《Practice of Programming》中的Binary Search,不那么通用,而且也存在上面说的bug!把它修改成通用(模仿一下标准C库函数bsearch(3))而且bug-free的代码就留给您作为课后作业了。

BTW:这里有篇小文章,分析了为什么90%的程序员写不出bug-free的binary search。里面确实道出了很多程序员的无奈,用某牛的话说就是我们只能证明bug的存在,而不能证明其不存在,代码越多越是如此!

公子啊,公子~!

“你以为你躲起来就找不到你了吗?没有用的!你是那样拉风的男人,不管在什么地方,就好像漆黑中的萤火虫一样,那样的鲜明,那样的出众。你那忧郁的眼神,稀嘘的胡喳子,神乎其技的刀法,还有那杯Dry Martine,都深深地迷住了我。 ”

——《国产零零漆 》

公子,男,其名时雨行(hang)

烘培鸡 :http://www.shiyuhang.org/

爱好:闷骚

优点:闷骚

缺点:闷骚

信奉格言:失去信仰,法律就失去了灵魂。(或:法律如果不被信仰,就等于形同虚设。)

自我宣言: 时雨行(xing),我看行!(应公子强烈要求,加此注释:感谢王聪同学帮我想了这么帅呆酷毙的广告词!感谢人民!感谢党!)

曾用网名:acstar,西游民,大低调,半壶酒,时雨 (to be continued…)

公子语录:

1. 北大就是把学校建到火星上我也去!

(点评:您就是火星人啊,您不去北大招谁去?)

2. 我爱北京未名湖,未名湖上太阳升。

(点评:原来未明湖就是公子眼中的天安门啊!)

3. 是爷们就去未名湖泡脚。

(点评:王聪版:是爷们就去未名湖泡妞,另一个版本是:是爷们就去未名湖泡茶,还有:是爷们就去未名湖泡酒。点评的点评:人家未名湖招你们惹你们了?!

4. 黄沙百战穿金甲,不破北大终不还!

(点评:我们明儿给您老定做一套黄金甲!)

刘洋啊,刘洋~!

哎,今天不能不说一下刘洋兄了!我彻底被他折服了!大家可能不知道,刘洋兄的拖拉能力是非常惊人的!

刘洋兄其人虽胖,但肢体行动还不迟缓,踢球从来都不掉队,可没想到做起事来是如此拖拖拉拉。有时,分配给他的一些事,按他的能力本来一天搞定不成什么问题,可我们一天后几乎总是看不出他有什么搞定的迹象,甚至两三天之后仍然看不到!实在忍无可忍时就发邮件问问他到底在干嘛?!可他总是不急不慢,斯斯文文地回答:“这些天我有事没去实验室。”或者“哎,别提了!又帮同学&#%@去了!”我不得不承认,这种回答非常巧妙!想说他几句吧,可人家确实有事,你也不好说什么!不说吧,可他拖得我们实在不爽,让我们在这干着急!这一招太狠了,让我们进退两难,欲说不能,欲言又止!不服不行!

哎,刘洋啊,刘洋……我该说你什么好呢?

Brackets, too

If a is legal, (a), {a}, [a] are legal;
If a and b are both legal, ab is legal.

You are given a string S with length of n. Assume that Si(1 <= i <= n) is the i-th character of S. Your task is to find out whether there is a k(1 <= k <= n) that SkSk+1Sk+2…SnS1S2…Sk-1 is legal.

Input
There are several test cases. The first line contains an integer N. Then N test cases follows. In each test case, there is an only line that contains S. The length of S will not be larger than 1000. There are only (, ), {, }, [, ] in S.

Output
For each test case, output a single line “YES” (without quotation marks) if there is such a k, or “NO” (without quotation marks) otherwise.

Sample Input
3
}()[]{
}([)]{
()][

Sample Output
YES
NO
YES

! /usr/bin/env python

import string, sys

def exchange_str(str, i):
str1 = str[0:i]
str2 = str[i:]
return str2+str1

def is_legal(str):
if(len(str)==0):
return 1
if(len(str)==1):
return 0

if(str[0]=='('):
    i = string.find(str, ")")
    if(i==-1):
        return 0
    elif(i==len(str)-1):
        return is_legal(str[1:len(str)-1])
    else:
        return is_legal(str[0:i+1]) and is_legal(str[i+1:len(str)])
if(str[0]=='['):
    i = string.find(str, "]")
    if(i==-1):
        return 0
    elif(i==len(str)-1):
        return is_legal(str[1:len(str)-1])
    else:
        return is_legal(str[0:i+1]) and is_legal(str[i+1:len(str)])
if(str[0]=='{'):
    i = string.find(str, "}")
    if(i==-1):
        return 0
    elif(i==len(str)-1):
        return is_legal(str[1:len(str)-1])
    else:
        return is_legal(str[0:i+1]) and is_legal(str[i+1:len(str)])

n = string.atoi(sys.stdin.readline())
while(n!=0):
str = sys.stdin.readline()
str = str[0:len(str)-1]
tmp = “”
legal = 0;
for i in range(0, len(str)):
tmp = exchange_str(str, i)

    #print "==&gt;"+tmp+"n"
    if(is_legal(tmp)):
        legal = 1
        break
if(legal==1):
    print "YES"
else:
    print "NO"
n-=1

Brackets

Given a string consisting of brackets of two types find its longest substring that is a regular brackets sequence.

Input

There are mutiple cases in the input file.
Each case contains a string containing only characters ‘(’ , ‘)’ , ‘[’ and ‘]’ . The length of the string does not exceed 100,000.
There is an empty line after each case.

Output

Output the longest substring of the given string that is a regular brackets sequence.
There should be am empty line after each case.

Sample Input

([(]()]

([)]

Sample Output

[()]

include

include

include

include

using namespace std;

class Substr{
private:
int from;
int length;
string s;
bool ispair(char a, char b)
{
if(a ==’(‘ && b == ‘)’)
return true;
else if(a == ‘[‘ && b == ‘]’)
return true;
else
return false;
}
void calculate()
{
int max = 0;
int len = 0;
const char* p = this->s.c_str();
stack vc;

    do
    {
        if(!vc.empty() &amp;&amp; ispair(vc.top(),*p)){
            vc.pop();
            len++;
        } else {
            if(len &gt; max){
                max = len;
                from = p-this-&gt;s.c_str();
                length = len*2;
                from -= length;
            }
            len = 0;
            vc.push(*p);
        }
    }while(*p++);
}

public:
Substr(string str)
{
s = str;
from = 0;
length = 0;
}
void print()
{
calculate();
cout<<s.substr(from, length)<<endl;
cout<>s){
Substr ss(s);
ss.print();
}
return 0;
}

翠花儿,上代码~!

无意(确实是无意)间写了这么一个程序,它既没调用里面的打印”hello!”的函数,也没使用循环,却是无限循环地打印”hello!”!这个程序是不可移植的,在Win上应该不行,在Linux上可能也有差异。我是在FC5上编译运行的,效果不错。

include

include

void foo(char arg)
{
volatile int foo = 3;
volatile int bar = 9;
char str[8];
strcpy(str, arg);
printf(“ret=%pn”, (int
)(&foo - 1));
}

void hello()
{
printf(“hello!n”);
}
int main(void)
{
char t[32] = { 0 };
memset(t, ‘x90’, 31);
unsigned long ptr = (unsigned long )&t[20];
ptr = (unsigned long)&hello;
ptr = (unsigned long
)&t[24];
*ptr = (unsigned long)&main;
printf(“hello@%pn”, hello);
foo(t);
return 0;
}

又是一道数学题

如上图, ABDC为正方形,边长为12,E是中点。求黑色三角形BEF面积。

一看好像是我弟弟寒假作业中的一道题,当时用的是重叠面积法做的。后来发现根本不是一个题,思路都不一样,这道题是用传说中的……来做。

不会做的人就继续路过吧!小公子肯定以低调的名义表示不会做,很假,公子您的调再低点儿就成韩红了!而某位给初中生当家教的同学不知道对这道初中生的题感觉如何?人家那娃要是问您这道题您该咋回答呢?