單詞化日記 留言簿 主頁

  • Tag:
    这里是我的标签集合!

Win32 Emacs 配置

八月 8th, 2008

Ubuntu下編程序用Emacs習慣了,WinXP的IDE倒用起來不順手了,下載了一個(Patched的那個)~

剛下載下來的的當然不能直接用了,除非你受得了那奇怪的字體= =

.emacs是emacs的配置文件,Win32下在 C:\Documents and Settings\你的用戶名\Application Data下

下面這個是我參考了N多人的帖子寫出來的配置,呵呵,Ubuntu中文論壇Evalls,謝謝了

這個配置適合pascal環境,自定義了F5關閉窗口,F7單步,F8單步,F9編譯,F10GDB

fontset-wincolor-theme自己到網上去下載一下吧,保存到下面的那個位置,一個是改字體的,另一個是改顏色配置的

emacs2emacs Read the rest of this entry »

Chtml-中國人自己的超文本編輯語言

七月 29th, 2008

* 海内外媒体热议 CHTML 标准推出是中文互联网重大突破
* 网民纷纷发贴祝贺 CHTML 标准草案胜利颁布
* 新版本标签任前公示
* 一个已知的服务器故障已经修复, 用户可顺利下载DTD. 请点击此 http://chtml.googlecode.com/svn/trunk/chtml.dtd

简介

CHTML 是一种超文本标记语言. 它顺应汉语编程的历史潮流, 允许中国的互联网开发者发布信息到万维网上使用中文的字符作为标签. 比如

五大三<粗>粗</粗> 和 东倒西<歪>歪</歪>

详细介绍

CHTML 是国际互联网组织 W3C 超文本标记语言 4.0 的一个实现. 是在汉语编程光辉思想的指导下, 互联网普遍协议与中国国情相结合的产物. 和汉语编程一样, 原来使用英文的标签现在可以全部使用中文; 除此之外, 还额外扩展了两个标签, 即 <反功夫网> 和 <勾>. 除此以外, 该协议和现有 HTML 标准完全兼容. 目前 CHTML 的版本是零点零一.

<勾> 是和中国国情结合的产物. 有时候我们需要创建只有一个答案的投票, 此标签即可用于及时丢弃用户投票, 节省服务器资源, 彰显社会主义优越性.

<反功夫网> 是著名的 CAPTCHA 系统的浏览器实现. 所以在此标签中的元素都变成 CAPTCHA 从而人可以顺利阅读, 而机器不能. 目前的实现有两个, 一个是由 CMU 构建的 reCAPTCHA 文字自动转系统, 另一种是由中国网民发起的竖起来的文字系统. 此标签对人和搜索引擎都无害, 但可以透明飞跃长城. 技术细节还在讨论当中.

为便于中文开发者理解含义, 其他标签也按照中文互联网的特色做了相应的定义. 如, <em> 变成 <含泪劝告>, <strong> 变成 <停顿鼓掌>,更多的细节可以参见这个 中文文档. 我们的新版本也在紧锣密鼓的开发中, 请各界群众查看我们新版本中部分标签的 任前公示 Read the rest of this entry »

另一种神奇的Whitespace语言

五月 3rd, 2008

Whitespace是由Durham大学的Wdwin Brady和Chris Morris发明的,于2003年4月1日发布(和愚人节有关?)。和大多数语言通常忽略空白字符不同,Whitespace解释器忽略一切非空白字符。空格、Tab和换行是仅有的语法元素。这就带来了一个有趣的事实:一个Whitespace程序可以完美地嵌入进一个文章之中。
Whitespace是一种命令式堆栈型语言,程序运行在一个有一个栈(Stack)和一个堆(Heap)的虚拟机之上。编程者可以将任意大小的整数压入栈中(目前还没有实现对浮点数的操作)。堆常用作存储变量和数据结构的固定存储空间,用户可以直接访问。 数字和字母(ASCII)都用二进制表示,空格表示0,Tab表示1。你可以在这里看到详细的教学。
很多人会问,这个有什么用呢?
确实没啥用。不过也确实很好玩。根据它的特点怎么也能编出一些不太靠谱儿的“用途”来。比如,和BrainFuck一样,这种语言要写注释就方便了,写的注释根本不需要标识,编译器直接跳过你写的文字信息。还有,我们完全可以在满篇空白的代码中插入一篇文章,从而在看起来完全无关的文章中隐藏一段代码。对于间谍工作来说这种语言帮助很大,因为它可以防止别人把代码打印出来拿走 -_-|||
Whitespace已经被证明是图灵完备的。证明可以在主页的邮件列表中找到,其晦涩程度之大,目前还没有人对证明作出评论。下面是Hello World程序:

 
Whitespace  
 
 

神奇的BrainF**k语言

五月 3rd, 2008

先介绍下BrainF**k:

Brainf**k is the ungodly creation of Urban Müller, whose goal was apparently to create a Turing-complete language for which he could write the smallest compiler ever, for the Amiga OS 2.0. His compiler was 240 bytes in size. (Though he improved upon this later -- he informed me at one point that he had managed to bring it under 200 bytes.)

BrainF**k 语言,是一种按照“Turing complete”思想设计的语言,它的主要设计思路是:用最小的概念实现一种“简单”的语言,BrainFuck 语言只有八种符号,所有的操作都由这八种符号的组合来完成。

>
Increment the pointer.

<
Decrement the pointer.

+
Increment the byte at the pointer.

-
Decrement the byte at the pointer.

.
Output the byte at the pointer.

,
Input a byte and store it in the byte at the pointer.

[
Jump forward past the matching ] if the byte at the pointer is zero.

]
Jump backward to the matching [ unless the byte at the pointer is zero.

>       指针加一
<         指针减一
+         指针指向的字节的值加一
- 指针指向的字节的值减一
. 输出指针指向的单元内容(ASCII码)
, 输入内容到指针指向的单元(ASCII码)
[ 如果指针指向的单元值为零,向前跳转到对应的]指令的次一指令处
] 如果指针指向的单元值不为零,向后跳转到对应的[指令的次一指令处

因为 BrainFuck 只有八种指令,并且没有关键字,也不允许自定义标识符,
因此它的编译器实现起来非常简单,初学 C 语言不久的人都可以自己编出来,尽管在座的各位每人都可以自己编一个,不过为了引起大家的兴趣,我这里还是给出大家一个官方发布的版本:

CODE:

#include <stdio.h>;
int   p, r, q;
char a[5000], f[5000], b, o, *s=f;
void interpret(char *c)
{
char *d;
r++;
while( *c ) {
//if(strchr("<>;+-,.[]\n",*c))printf("%c",*c);
switch(o=1,*c++) {
case '<': p--;        break;
case '>;': p++;        break;
case '+': a[p]++;     break;
case '-': a[p]--;     break;
case '.': putchar(a[p]); fflush(stdout); break;
case ',': a[p]=getchar();fflush(stdout); break;
case '[':
for( b=1,d=c; b && *c; c++ )
b+=*c=='[', b-=*c==']';
if(!b) {
c[-1]=0;
while( a[p] )
interpret(d);
c[-1]=']';
break;
}
case ']':
puts("UNBALANCED BRACKETS"), exit(0);
case '#':
if(q>;2)
printf("%2d %2d %2d %2d %2d %2d %2d %2d %2d %2d\n%*s\n",
          *a,a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],3*p+2,"^");
break;
default: o=0;
}
if( p<0 || p>;100)
puts("RANGE ERROR"), exit(0);
}
r--;
// chkabort();
}
main(int argc,char *argv[])
{
FILE *z;
q=argc;
if(z=fopen(argv[1],"r")) {
while( (b=getc(z))>;0 )
*s++=b;
*s=0;
interpret(f);
}
}

 

再贴点BF程序:

“Hello World”程序:

>+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.[-]>+

+++++++[<++++>-]<.>+++++++++++[<+++++>-]<.>++++++++<+++>-]<.+

++.------.--------.[-]>++++++++[<++++>-]<+.[-]++++++++++.

 

==============头昏脑胀的分割线 ^-^================

 

怎样,这个语言很牛X吧?但更牛X的是.下面这个程序则允许用户输入一个数字然后程序将输出小于这个数字的所有质数。

>++++++++[<++++++++>-]<++++++++++++++++.[-]>++++++++++[<+++

+++++++>-]<+++++++++++++.[-]>++++++++++[<++++++++++>-]<+++++

.[-]>++++++++++[<++++++++++>-]<+++++++++.[-]>++++++++++[<++++

++++++>-]<+.[-]>++++++++++[<++++++++++>-]<+++++++++++++++.[-]>

+++++[<+++++>-]<+++++++.[-]>++++++++++[<++++++++++>-]<+++++++

++++++++++.[-]>++++++++++[<++++++++++>-]<++++++++++++.[-]>+++

++[<+++++>-]<+++++++.[-]>++++++++++[<++++++++++>-]<+++++++++

++++++.[-]>++++++++++[<++++++++++>-]<+++++++++++.[-]>+++++++[

<+++++++>-]<+++++++++.[-]>+++++[<+++++>-]<+++++++.[-]+[->,----------

[<+>-------------------------------------->[>+>+<<-]>>[<<+>>-]<>>>+++++++++[<

<<[>+>+<<-]>>[<<+>>-]<[<<+>>-]>>-]<<<[-]<<[>+<-]]<]>>[<<+>>-]<<>+<-

[>+[>+>+<<-]>>[<<+>>-]<>+<-->>>>>>>>+<<<<<<<<[>+<-<[>>>+>+<<<

<-]>>>>[<<<<+>>>>-]<<<>[>>+>+<<<-]>>>[<<<+>>>-]<<<<>>>[>+>+<<-]

>>[<<+>>-]<<<[>>>>>+<<<[>+>+<<-]>>[<<+>>-]<[>>[-]<<-]>>[<<<<[>+>+

<<-]>>[<<+>>-]<>>>-]<<<-<<-]+>>[<<[-]>>-]<<>[-]<[>>>>>>[-]<<<<<<-]<

<>>[-]>[-]<<<]>>>>>>>>[-<<<<<<<[-]<<[>>+>+<<<-]>>>[<<<+>>>-]<<<>>

[>+<-]>[[>+>+<<-]>>[<<+>>-]<>++++++++<[>>>+<<[>+>[-]<<-]>[<+>-]>[<

<++++++++++>>-]<<-<-]+++++++++>[<->-]<[>+<-]<[>+<-]<[>+<-]>>>[<<<

+>>>-]<>+++++++++<[>>>+<<[>+>[-]<<-]>[<+>-]>[<<++++++++++>>>+<-

]<<-<-]>>>>[<<<<+>>>>-]<<<<>[-]<<+>]<[[>+<-]+++++++[<+++++++>-]<-

><.[-]>>[<<+>>-]<<-]>++++[<++++++++>-]<.[-]>>>>>>>]<<<<<<<<>[-]<[-

]<<-]++++++++++.[-]

 

不知看完之后你吐了没,如果没有,建议你吃过饭后再看一遍。-____-b

一些神奇的函数图像

四月 6th, 2008

    刚才在网上发现了上面这张猛图。急着想验证一下,但不知道Mathematica如何画极坐标的隐函数,于是写了一个Free Pascal的小程序。大家也可以试着把这个小程序粘贴到Free Pascal里运行一下看看。

{$ASSERTIONS+}
uses graph,math;
function f(t,r:extended):extended;
begin
   exit((cos(t-r)-sin(t)) * (r**4-2*r**2*cos(2*t+2.4)+0.9)+(0.62*r)**1000);
end;
var
   i,j,gd,gm:integer;
   t,r:extended;
begin
   gd:=D8bit;
   gm:=m640x480;
   InitGraph(gd,gm,'');
   Assert(graphResult=grOk);
   for i:=0 to 1000 do
   for j:=0 to 1000 do
   begin
      t:=(2*pi)*i/1000;
      r:=2*j/1000;
      if f(t,r)<0 then
         PutPixel(round(cos(t)*r*100)+300,round(sin(t)*r*100)+200,15)
   end;
   readln;
   CloseGraph;
end.

    果然不出所料,下面就是程序运行的结果:

 

 

本文内容遵从CC版权协议 转载请注明出自matrix67.com

(x^2 + (9/4)y^2 + z^2 - 1)^3 - x^2z^3 - (9/80)y^2z^3 == 0。
下面是本人亲自用Mathematica绘的图,发出来给大家看看。
图片为Matrix67原创
转贴请注明出处

f(x,y)=e^(-x^2-y^2/2) * cos(4x) + e^(-3((x+0.5)^2+y^2/2)),它可以说是“函数界”里的Hello World,因为当z充分小的时候(比如取0<z<0.001),函数图象是两个大大的字母,向电脑前的你表示最真挚的问候。看来,以后打招呼又有新的方式了。

    另外一些有趣的问题是,有没有牛人能找到一个并不太复杂的,可以显示“Hello World”的初等函数呢?或者更实用一些的,想要创作一个“XXX我爱你函数”需要花多长时间,函数本身会有多复杂?

 

本文内容遵从CC版权协议 转载请注明出自matrix67.com


  • Google Adsense

  • 訂閱我

  • G-Readers

  • My Links