win calc计算器妙用-功能键-编辑键-视图-命令键-脚本-迭代-连分数-批量和-批次高精度-内存-lisp-文本VS代码
windows计算器低级使用-运行-功能键-编辑键-视图-命令键-脚本-迭代开方-连分数-批量求和-批次式高精度-内存使用-lisp- 文本与代码合一
一直觉得windows计算器是个好东西.四年前,曾在网吧教收银员在交班时用统计框进行计算.
今天试用了一些计算器来计算数论问题, 发现它的方便性仍然无可取代.
首先,
它是内置于操作系统的, 调用方便:
(ctrl-ESC-R或win键-R) 开始菜单-运行 calc
或 开始菜单-程序-附件-计算器
(ctrl_shift_ESC)- alt_FR 任务管理器:菜单-运行 calc
其次,
比excel的计算精度要高,可以到32位有效数字.
当然, excel也可以有高精度计算包, 但是我发现excel 2010居然不能计算 mod (139*81*10^8k+a, k), a>=0, 对excel有些不信任了.
朋友们如果发现有excel的高精度计算包, 请推荐一个.
{
数学软件, mathematica, maple, matlab好久没用了. 因为它们处理文本和数据列表, 没有excel 方便.比如excel可以方便的分组折叠与展开.
如果是我掌握不够好的原因,请朋友们指点一下.谢谢.
matlab 可以嵌入到office, 尤其是excel中, 倒是很好. 这个有空的话, 我再多多应用. 朋友们有这方面的心得的话, 请不吝指教. 谢谢.
}
再次,
calc也支持简单的按键命令脚本.与excel结合, 也很有效.
一个问题是如何利用calc批量计算,将统计框内的数据复制到excel中.
再次,calc的按键命令,实在是太方便,使我想起了vim.由此编成的脚本也十分简炼,有点像J语言与lisp之类的了。
迭代, 是可以用脚本实现的; 但是似乎只能支持一个内存变量.
多变量的交换, 是个问题.如何能调用统计框中的多个内存变量,是个问题.
下面的例子可以用现成的函数计算出来, 但我举这样的例子,是为了说明, calc的确可以使用脚本来处理问题.
其实, 用数学软件很容易完成,也不必在calc上煞费苦心. 不过, 或者能够带来些什么启发也说不定吧.
DDDBBB12
注: 下面的例子要调用计算器的科学型界面. 如有必要, 请先参考 AAA. 如熟悉计算器功能, 先测试无妨.指令的意义见BBB
例一:利用x(n+1)=(x(n)+a/x(n))/2计算sqrt(a)
例二: 用连分数计算黄金分割数(sqrt(5)-1)/2=1/(1+1/(1+...))=[0; {1}]
例三: 批量数据用计算器求和.
例四: 用来进行高精度计算.
例一(1): 计算银数,即满足X(n+3)=X(n+1)+X(n)的数列的邻值比X(n+1)/X(n)的极根.利用x^3=x+1,由初值x进行(x+1)^(1/3)迭代.
计算得到银数:1.3247179572447460259609088544781.用excel单变量求解,则可以得到1.32471795724475,精确到14位有效值,舍入到15位有效值.
例一: 利用x(n+1)=(x(n)+a/x(n))/2计算sqrt(a)
注意, 不能有多余的等号或回车.
注意, :p,:m要连在结果数(常数,等号或回车产生的数)的后面,:r则作为输入数出现.
步聚(1):调出统计框, 在计算过程中将结果置入到其中,以起到提示作用:
ctrl_S
步聚(2):清内存,输入初值x(0),初值为正数,如1到a之间,可固定为1.但为了起到提示作用,我将初值写入统计框,指令行如下:
(
2:m\
)
注:
1: 手动输入: 2, 再按 MS 键, 即 store in memory.
2: 这一步很要紧. 如果中途发现与下面的描述不符, 常见的原因是: 内存中存储的变量在计算中变得与这里的预置不同,
那么你应当重新复制这个步聚运行一次再进行下面的过程.
3: 统计框也应当及时全清(全部清除), 以利观看.
步聚(3):用x(n+1)=(x(n)+a/x(n))/2进行迭代(循环操作),直到再次结果相同,即得32位的a的平方根. 过程是:
读内存,取倒数,乘以被求平方根的数a,得到值后加到内存; 读内存,除以2,存入内存与统计框;
然后复制下面的指令行,反复循环.
下面是计算根号5的过程.
(
:rr*5=:p:r/2=:m\
)
注: 复制此指令, 粘贴多次就是迭代过程. 这里用5次迭代即得到32位精确值.不信你平方可以得到5
统计框下面会显示 6, 这是包含初值在内统计框内数据的数目.
例二: 用连分数计算黄金分割数(sqrt(5)-1)/2=1/(1+1/(1+...))=[0; {1}]
初值,这一步一般可以省略.因为下面的循环体中,第一步没有用除法.
(
1:m\
)
迭代过程:
(
:r+1=r:m\
)
再如计算sqrt(2)-1,将上面代码改为:
(
:r+2=r:m\
)
一般地,计算x=1/(a+x)的实根x=(-a+sqrt(aa+4))/2,用:r+a=r:m\.当a=2n时,x=-n+sqrt(nn+1).
如-2+sqrt(5)对应 ( :r+4=r:m\ )
-3+sqrt(10)对应 ( :r+6=r:m\ )
写到这里,我发现,用括号来包含脚本,而其它内容均不视为脚本而被调用和读取的话,那么文本与代码就合二为一了.
并且这种方式与lisp (包手Scheme)的点像. 从另一方面看,上面的代码还真是有lisp的意味吧?好精炼.
AAA
windows软件中通用的功能及windows计算器中的功能键总说
按钮 | 键 | 何冬州详注 |
F1 | 帮助 | (计算器的帮助文件中没有的)菜单alt_HH |
F10 | 菜单调用 | (计算器的帮助文件中没有的) |
F11 | 未知 | (计算器的帮助文件中没有的),一般用来全屏显示,计算器中可能没有到) |
F2-F4,F5-F8,F9,F12有定义. | 有特殊指定 | |
F2-F4 | Alt_VE,alt_VR,alt_VG, 分别是anglE, Rad, Grand. | |
F2-F4,F12 | alt_VR, alt_VW, alt_VY, alt_VQ, 分别是R, Word, Y, Qword | |
总说: | ||
F2,F3,F4 在Dec时为角度, 弧度, 梯度; hex-Oct-bin 时为Dw双字,W字,Byte字节,F12为Qw四字; | ||
F5,F6,F7,F8分别为 |