博文

整理我以前的PASCAL源程序-高精度计算(1)计算圆周率(2010-08-19 22:05:00)

摘要:序言   看着这些程序,使我想起了以前DOS时代。这些PASCAL程序是我多年前编的。有些在论坛贴过,有些没贴出来。最近在整理,希望对以后学PASCAL的人有用。    高精度计算(1)计算圆周率   以前就一个16位的编译器TP7,数组开大一点还不行。当时是想开一个数组,把一些常数计算得位数更从一些。没有用别人的算法,没有用别人的代码,就自己编,不求太高的效率。   最先计算的是圆周率,失败了几次,最后程序成功地算出一千位来。当时心情真的很兴奋。以前网络没有普及,拿着一本书,在那里对着数位,直到书上数位没有了,程序仍然显示着后面的数位……     后来改了几次。下面的程序,用Machin公式,在TP7下可以算出一万位圆周率来。 program spi; { pi=16acrtg(1/5)-4arctg(1/239)   } { pi/4=1/1*(20/25-239/57121)-1/3(20/25^2-239/57121^2)+... } { Programmed by j.t.Chang.} label ext,ext2; const       dn=2504; var    i,ip,c:integer;    k:longint;    a,b,sum:array[1..dn] of integer; procedure oupt; var i:integer;     k:longint; procedure testk; var    ch:char; begin      if k mod 10=0 then write(' ');      if (k mod 50=0) and (k mod 1000<>0) then               writeln(......

阅读全文(2039) | 评论:0

懂数学不懂语文的人闹的笑话(2007-09-12 11:07:00)

摘要:  我今天看到一本电子书《乐在其中的数学》,其中一句话,几乎让我笑倒。这句话是这样写的:“古往今来,含有数字的上好对联为数极多,真是罄竹难书,……”  “罄竹难书”形容罪行多得写不完,是贬义词。语出《旧唐书•李密传》:“罄南山之竹,书罪未穷;决东海之波,流恶难尽。”这个词用在这里,让任何一位有一点语文知识的人都会笑倒。  这就是懂数学不懂语文的人闹的一个笑话。......

阅读全文(1933) | 评论:0

摆了52年的“六角形”幻方(2007-09-10 14:37:00)

摘要:  “幻方”是数学大世界中的一朵奇葩,吸引了无数人对它的痴迷。在“幻方”的世界中,人们主要研究的是正方形幻方的填法,对其他形状幻方的研究涉及较少。但是有一个“六角形”幻方的填法值得我们了解,因为这个幻方用了52年的光阴才让它与世人见面,这不得不让人们为之惊奇和感动。   上个世纪初,国外有个叫亚当斯的青年,他对幻方的痴迷让人吃惊。一次,他突发奇想:为何只研究正方形幻方呢?难道其他形状的没有了吗?于是,他着手研究“六角形”的幻方。   亚当斯理所当然首先想到的是一层的六角形幻方,即将1-7这七个自然数填到如图1所示的圆圈中,他经过证明,这样的六角形幻方是不能填出来的。于是,他又着手研究二层的六角形幻方的填法。如图2所示,将1-19这19个自然数填入圆圈中,使每一直线上的几个数之和都相等。   亚当斯起初觉得这样的幻方不一定很难,以为只要几个小时,也许就能摆出来。当他动手摆了几次后,才感到这样的幻方不是自己想像的那么容易。于是,为了更好的、更早的把这样的幻方摆出来,他做了19块小板,带在身上,只要一有空,他就拿出来摆。这一摆,就让他感到事情不是那么的简单。一次,两次,无数次;失败,失败,再失败。亚当斯从1910年开始,直到1957年,用了47年的时间,还是一点头绪也没有。失败,挫折,没让亚当斯退却。只是为了更早的摆出来,劳累让亚当斯病倒了。他躺在医院的病床上,也没有忘记他那心爱的、让人难以达到的六角形幻方。功夫不负有心人,一天,亚当斯在无意之中把它摆了出来,此时,亚当斯的心情非常激动,马上把他的摆法记了下来。这样,六角形的幻方摆出来了,心情高兴了,病也好了。在回家的路上,不知什么原因,亚当斯把他记六角形幻方的纸张给弄丢了。   亚当斯并不灰心,既然第一次摆出来了,第二次也肯定能摆出来。不料,这一丢失,亚当斯又用了5年,才第二次把六角形幻方摆出来(图略),这时,时间到了1962年。   亚当斯用了52年的时间,终于摆出了六角形幻方。图上一共有15条连线,这15条连线上的数字之和分别均为38。   当这件事过去了7年后,有一位大学生阿莱尔用电子计算机,仅仅用了17秒就摆出来了;同时也得出,六角形幻方仅此一例,再没有别的六角形幻方了。此幻方的稀有程度不得不让人记住它。   亚当斯的精神让我敬佩,同时我为他浪费了52年的时间感到惋惜。  现在任何一个编程好一点的计算......

阅读全文(2232) | 评论:0

用Excel解线性方程组(2005-08-21 01:31:00)

摘要:这里我想提的只是一个Excel里不被人注意的函数:计算行列式MDETERM() 例题:   设有未知数x1、x2、x3、x4,满足以下条件: x1 + 3*x2 -2*x3 + x4 = 1 2*x1 + 5*x2 -3*x3 + 2*x4 = 3 -3*x1+ 4*x2 + 8*x3 -2*x4 = 4 6*x1 -x2 - 6*x3 + 4*x4 =2 用克拉默法则求出x1、x2、x3、x4的值。 解题方法: 我们在(A1:E4)单元格分别输入系数和等号右边的数值 1    3    -2    1    1 2    5    -3    2    3 -3    4    8    -2    4 6    -1    -6    4    2 在单元格A5输入公式: =MDETERM(A1:D4) 即计算系数行列式,得到 17 ,于是得 D = 17; 选中(E1:E4)这一列单元格,复制:按Ctrl + c, 然后点中A1单元,粘贴:按Ctrl +  v, A5单元格变成了 -34 ,于是得 D1 = -34 取消:按Ctrl + z,A5单元格仍变回17。点中B1单元格,粘贴:按Ctrl +  v, A5单元格变成了 0 ,于是得 D2 = 0 取消:按Ctrl + z,A5单元格仍变回17。点中C1单元格,粘贴:按Ctrl +  v, A5单元格变成了 17,于是得 D3 = 17 取消:按Ctrl + z,A5单元格仍变回......

阅读全文(6756) | 评论:1

用winamp播放《仙剑奇侠传》dos版音乐(2005-08-19 10:55:00)

摘要:本文提到的音乐文件、winamp插件均可在http://jtchang.ys168.com网络硬盘的压缩包里找到,或者在SPC音乐网www.spcmusic.net找到。感谢SPC音乐网成员以及所有为我提供帮助的网友! 未经作者同意不得转载 ------------------------------   怀念《仙剑奇侠传》DOS版优美的音乐!它让我想起了拿着把木剑到处斩妖除魔的学生时代。     尽管那时是在DOS下玩的游戏,但是它优美的音乐依然让人难以忘怀。我曾经编程把游戏文件Midi.mkf里的midi文件拆开来播放,现在网上也有一些midi文件可以下载,但总觉得和实际游戏里播放的音乐相去甚远,游戏里的音乐更加动听。     直到有人用《大富翁》测试声卡的程序“偷梁换柱”来播放《仙剑奇侠传》的背景音乐,我才意识到这个差距是怎么回事:原来我和大多数人一样弄错了,其实游戏里调用的是另一个文件:mus.mkf。音乐文件不是midi,而是rix。(rix文件:大宇公司早期开发游戏时的音乐文件)   随着DOS的淘汰,原来那个《大富翁》测试程序已经没办法直接在windows下播出声音来了,必须通过dos模拟器才能正常发出音乐。同时那个测试程序也不便于选曲。     去年,经过BBS上各位网友提供的帮助,我也下了很多功夫,终于制成了能够在windows的mp3播放器winamp下独立播放的*.dro文件。         文件的播放方法: 1、你需要安装有winamp这个软件,大名鼎鼎的mp3文件播放器。 2、下载并安装winamp的插件Adplug。下载网址: http://www.informatik.uni-oldenburg.de/~dyna/adplug/files/in_adlib-1.6.exe 3、用winamp播放我制作的扩展名为dro的文件。     这些音乐和游戏里的背景音乐播放效果是一样的。     如果上述插件网址连接失效,可以发邮件到我的邮箱:jtchang@21cn.co......

阅读全文(4346) | 评论:1