几个令人惊叹的函数图像

    国外有人发现一个鲜为人知的古董级函数作图软件—— GrafEq 。这个软件只有 2M 大小,它的功能就只有一个:作出形如 x2 + y2 = 1 的二元等式或者不等式的图像。令人惊叹的是,这个软件的图像绘制能力异常强大, Mathematica 等大型专业数学软件完全不是它的对手。
    这个软件早就没再更新了。它的“最新版本”是 2.12 ,只支持 Windows 95 到 Windows XP 的系统,或者 PowerPC 7.12 到 MacOS 9.2 的系统,可见其年代久远。神奇的是,这个软件的官方网站依然健在,而且软件竟然也都能下载。如果你有幸还能装上这款软件,你将有机会重温一次 Windows 95 时代的软件安装画面。

Read more…

iPad上的数学软件介绍与畅想

    又是好久没有更新了,因为最近正沉迷于 iPad 。前天花 4800 元买了个 iPad ,然后一直在 App Store 上淘软件。下面与大家分享几款适用于 iPad 的数学软件,犹豫是否要买 iPad 的网友可以参考一下。因为我最近买了个 Hero ,把原来的 N82 卖了,因此拍照效果不太好,大家容忍一下。

 
Quick Graph 是一个难得的免费软件,可以用来绘制各种函数图象。在 iPad 上研究函数图象尤其方便,因为你可以利用触摸屏非常自由地放大、缩小、移动查看的范围。

Read more…

超强的储存方法:即使连续128个扇区全部损坏也能恢复原数据

    不知大家有过硬盘坏道没,反正有一次我是遇上了,珍贵的collection顷刻间化为乌有。信息时代,每个人都面临着一个新的问题:如何储存你的重要文件最为安全?大多数人会选择多弄它几个备份,虽然这种办法的效率和“性价比”都不高。有没有什么高效而又节省空间的办法来保证数据安全呢?最近,ttsiod写了一篇关于Linux小软件Rsbep的文章,里面提到的算法可以保证大段数据丢失以后仍然能复原原来的数据。算法基于一种叫做Reed-Solomon的编码方式。

    Reed-Solomon编码的核心思想非常有趣:任意k个点都惟一地确定了一个最高次数为k-1次的多项式,如果我们把要传送的信息用一个多项式函数上的点来表示,那么我们可以用更多的点来描述这一信息,这样即使某些点的位置在传输过程中发生了错误,接收者也能根据其它的点来复原全部信息。考虑一个大小为n的有限域(由于一个字节有2^8=256种可能的值,n通常取256),其元素分别为x_0, x_1, x_2, …, x_n;而我们要传输的数据长度为k。首先我们把这k个字节的数据当作有限域的前k个非0元素所对应的函数值,确定出它们所对应的k-1次多项式函数f;然后计算出n-1个非0元素的函数值f(x_1), f(x_2), …, f(x_n),作为最终的编码发送出去。注意我们的元素是一个有限域,因此多项式的值仍然在这个域里面(范围仍然是0到255)。在实际应用中,我们通常取k=223,这样的话223个字节的数据将加强为一段255字节长的数据,其中有32个字节是附加的信息。这种编码的纠错能力很强,即使有16个字节在传输中发生错误,我们也能通过剩余的信息复原出原始数据。

Read more…

Ubigraph:强大而易用的图论动画生成软件

    Ubigraph是一个全新的图论动画生成软件,利用它你可以快速生成图论模型的图形和动画,直观地展示出各种图论模型的三维结构,演示各种图论算法的过程,非常适合用于研究和教学。之前本Blog曾经介绍过一个类似的软件graphviz,但这里提到的Ubigraph显然更强大一些。上面的动画就是由Ubigraph生成的二叉查找树演示动画(高清版here),看上去相当的酷。值得一提的是,Ubigraph也是相当易用的。graphviz有它自己的语法规则,而Ubigraph则直接支持Python, Ruby, PHP, Java, C, C++等几乎所有主流语言,因此不管你原先使用的是什么语言,你都可以很快地融入到Ubigraph来。例如,在C语言中包含一个头文件UbigraphAPI.h,你便可以像往常一样用循环语句“画”一个环。

#include <UbigraphAPI.h>
 
int main(int const argc, const char ** const argv)
{
int i;
for (i=0; i < 10; ++i) ubigraph_new_vertex_w_id(i);   for (i=0; i < 10; ++i) ubigraph_new_edge(i, (i+1)%10);   sleep(2);   ubigraph_clear(); }

    你可以在这里下载这个软件。目前该软件暂时没有Windows版。

Foldit:全球玩家都来为生物科学做贡献!

    蛋白质结构一直是透析人体、了解病毒、制造药物的关键。然而,从无数多种可能的蛋白质结构中寻找最佳结构是一个相当困难的问题,即使利用高性能的计算机也需要耗费大量的时间和资金。受到SETI@home计划的启发,一些科学小组建立了Rosetta@home计划,让分布在世界各地的个人计算机一起来参与蛋白质三维形状的计算。对于千变万化的蛋白质形状来说,这仍然是一个相当庞大的工程。一些科学家注意到,在某些最优化问题上,人类的直觉远远强于一大堆计算机算法。Foldit就是这样一个程序,它打算用人类的解谜思维来代替计算机算法中的一部分决策,把确定蛋白质的最佳三维形状设计成一个游戏,使得人们在游戏过程中也能对生物科学做出贡献。在这个游戏中你可以不断调整蛋白质的三维形状,上传最高分和所得的三维体,参与世界排名,并且还能与游戏参与者进行即时聊天。