-
2012-01-28
字典法生成数组所有排列(java)
字典法算法实现容易。易于理解。下面的这个类,用字典法实现数组的排列。
public class IndexArrayPermutations {
private int[] indexarray;
public IndexArrayPermutations(int n) {
// TODO Auto-generated constructor stub
//初始化长度为n的array数组。
indexarray = new int[n];
//给数组赋值。array={0,1,2,3,......,n-1}
for (int i = 0; i < indexarray.length; i++) {
indexarray[i] = i;
}
}
//用字典法产生下一个排列
public int[] nextIndexArray() {
int length = indexarray.length;
//第一步,寻找最后一个正序,寻找方法:从后向前找。
int i = 0;
for (i = length - 1; i > 0; i--) {
if (indexarray[i - 1] < indexarray[i]) {// 则array[i-1],array[i]即为一个正序。
break;
}
}
//如果没找到,也就是到了最后的一个。
if(i==0){
return indexarray;
}
// 第二步,从后往前找一个比array[i-1]大的第一个数字。
int j = 0;
for (j = length - 1; j > i; j--) {
if (indexarray[j] > indexarray[i - 1]) {
break;
}
}
// 第三部,交换array[i-1],array[j]
int tmp = indexarray[i - 1];
indexarray[i - 1] = indexarray[j];
indexarray[j] = tmp;
// 最后一步,把i-1后面(从i-2开始至length-1)的序列反序。
// 反序
while (i < length - 1) {
tmp = indexarray[i];
indexarray[i] = indexarray[length - 1];
indexarray[length - 1] = tmp;
i++;
length--;
}
//反序完毕即即一次排列结束。
return indexarray;
}}
//好吧,我只能说blogbus不适合写代码。或许我要离开这个地方。
-
简单实现数组反序列
把一个数组的i位置到n位置的所有序列反序。
|---反序----|
index 0 1 2 i n
array={A,B,C,...,M,。。。,N,。。。};void reverse(int[] array,int i,int n){
int tmp=0;
while(n>i){
tmp=array[i];
array[i]=array[n];
array[n]=tmp;
i++;n--;
}
} -
2012-01-21
字符串数学表达式解析 - [java基础]
表达式解析的方法
一,程序中执行脚本
二,使用java的动态编译。
三,开源包。网上搜了几个包
expressionj
JSEL(兼容javascript)
jeval
Expr4J
QLExpress
IK Expression
Fast EL
-
2012-01-21
程序员修炼:代码量的积累 - [程序员]
程序员必须要不断学习。不断coding。代码量决定了程序员的实力。等代码积累到一定程度时,coding的时候就不用自己花太多时间了。由于很多代码是重复的,所以只需要把之前的自己积累的code拼接组装即可。
节约工作时间,同时可以显得更牛比。
所以平时必须积累code。
code的积累,
一靠自己的编写。平时的project中注意把一些可以作为通用代码的code积累下来。只是自己的代码可能不够可靠。
二靠开源世界的各种工具包。java不是python,各种包不是太多。所以更要靠平时自己去搜寻。
-
男孩如何追女孩
1.未到火候,千万别说。有些男孩才跟人家约过几次,就提出要建立“更进一步”的关系,这十有八九要坏汤。爱情上的事妙就妙在一切尽在不言中。说清楚了,话挑明了,反而不美。本来人家肯单独出来跟你说话,这说明女孩对你不无好感。但是这种好感有时连她们自己都说不清,你却急于挑明,破坏了这种朦胧美,那就别怪人家敬而远之以致退避三舍了。看看周围那些还没开始就夭折的爱情,许多都是由男孩没有掌握好火候造成的。 -
2012-01-16
一年前帮学生写的读书笔记 - [废话一堆]
爱——世界上最伟大的魔法
————————————————简论《哈利波特》中爱的力量。
2001年11月04日,哈利波特系列电影的第一部《魔法石》于美国上映。
从此全球刮起一阵魔法狂潮。
2011年8月4日,哈利波特系列电影的终结篇《死亡圣器(下)》在我国内陆上映。
至此电影全球电影票房已经超越《指环王3》成为全球第三最卖座电影。
十年的时间,伴随着一代人的成长,哈利波特也走到了终结。在这部伟大的作品中,不仅为我们展示了多彩绚丽的魔法世界,而且讲解了神秘莫测的高端魔法。
而这个世界上最伟大的魔法当然不是驱除邪魔的“呼神护卫”,也不是保卫自己的“除你武器”,更不是杀人于无形的“阿瓦达索命”。
那是什么?邓布利多回答我们:“是爱。”
-
2012-01-16
不要和自己价值观偏差很远的人走的很近 - [废话一堆]
不要和自己价值观偏差很远的人走的很近。要么引火烧身。要么就会有严重的自卑感。
-
2011-12-18
兽族的一种新的骚扰型开局 - [游戏]
兽族新开局方法。
游戏开始。苦工采金。基地两P。
拉一苦工BA。
基地出来的苦工BO。
接下来出来的苦工将要去造BB。此时的木头应该是60。
在这个苦工将要出来的时候。拉一个采金的苦工去伐木。此时3苦工采金。出来的苦工造BB。此时的木头是10。那个采金的苦工伐两轮。即可满30。把这个苦工回去采金。
BA中的苦工就快造好祭坛。由于BO比BA稍慢。所以BA一好即可把BA中的苦工拉去造BV。
这样的话,英雄出来的时候即可有商店。兵营。一个大G。
适合骚扰型开局。缺点是第二个大G会出的比较晚。
-
2011-11-21
python中的迭代库 - [Python]
很久之前还自己花死力气去写一些可以生成排列组合的函数。而这一切都不必要。
itertools即可实现这一切。
比如:
from itertools import permutations
cols=range(4)
for vec in permutations(cols):
print vec
然后你会看到
(0, 1, 2, 3)
(0... -
2011-11-17
三根时针的问题 - [Mathematica编程]
时钟的分,时,秒三根针一天(24小时)之内会重合几次?

-
几年前在QQ空间转过,后来被和谐了。搞不懂SBTX和谐尼玛啊。
此篇文章//转贴//,很有意思
QQ空间字数有限,分为两篇。文中有些物理学家的名字拼写错误,做了修改。
--------------------------------------------------------------------------------------------... -
这是几年前网上看到的帖子。然后就保存了下来。清理电脑时觉得还是挺不错的。就贴上了吧。
=======================================================================================================
发信人: chinasww(太空战舰), 信区: Advice
标 题: 科大物理系教材1
发信站: 瀚海星云 (2005年07月08日01:19:36 星期五), 站内信件 WWWPOST
本来对教材、书籍也长时间关注。一直没有时间写稍微详细一点的。在此正好考完,就抛砖引玉了,难免贻笑大方!
。。。。。。。 -
2011-10-14
不翻墙访问google文档 - [生活]
i9100上的应用让我感觉云的力量真强大。各种好用的网络服务,再加上我自己的电脑硬盘空间有限。所以,就要更加利用好网络服务。
今天查了下不翻墙访问google文档的方法。很有效,但是不知道是不是换了网通的缘故,打开有点慢。不过不影响什么。利用好google文档。还有picasa。恩。!
不翻墙访问google文档的方法:http://blog.sina.com.cn/s/blog_4d6a65960100qom7.html(这类东西网上很多)
-
2011-08-22
好吧。小屁孩你懂个屁~ - [废话一堆]
好吧。。。小屁孩,你懂个屁。。我承认那天我很痛苦。。。但我真的没有时间去儿女情长了。
有些事情该过去就过去吧。
-
2011-07-31
我相信,这就是爱情。 - [心情]
也许,或许,maybe。好多的不确定。正如测不准原理,目标越明确,方向却越模糊。
各种不确定是自信心的不足,更是缺失勇气的未来。正如当初的我没有能力给她承诺,没有勇气面对未来。
前夜,刻录的光盘读不出来了。最重要的照片消失的无影无踪。那一刻心头涌上莫名的失落感简直要把人窒息。当晚又是一个噩梦。她清晰的回来了。不!她从未离去!这种感觉如此强烈,真实,让人撕心裂肺。
然而她真的走了。她不再属于我。她的心应该早就飞远了。苦苦的哀求亦是零功,何况我伤她太深。
放手,太难了。
我不曾相信过什么爱情。那些东西都是虚假的,伪善的,骗人的谎言。然而记忆消散于无形,迷雾散尽,爱早已留下痕迹。她是真的。
我相信,这就是爱情。但再也追不回来了。
-
青春逝去,麻木还是清醒,我无力平衡。
未来在哪里?未来是什么?我要的是什么?
追逐光和热的梦在现实中冰封。
。。。回温。。。
嘲笑这些伤痕,剩下的体温守卫那颗花。
。。。狂风暴雨。。。奋不顾身。。。。。。旋转着。。。
即便黄昏,依旧灿烂。
-
我觉得老板不好。但是我觉得老板觉得自己对我很好。现在有一个跳槽的机会放在我面前,我是不是该好好珍惜,如果离开我现在的公司,也许我将一无所有。如果不走我怕失去
这么良好的机会。我该何去何从?
=========================================================... -
累,累的慌。
好久都没心思写点东西。也不知道在这鬼地方能干多久。也不知道能坚持多久。
跳槽,我没去。我总想改变点什么。想创造点什么。
哼,,,,小p孩,你能做什么呢?
在我决定留下的那天下午。公司的女同事哭了。
我只是想多好的女孩子~。
也... -
你们谁能想象,哥穿上了衬衫,打起了领带,骑上自行车,背上公文包。那如犀利哥般忧郁的眼神,芙蓉姐般完美的身形,还有我标志性的飘逸秀发~~~。不要惊讶哥的华丽变身。虽然我知道,人潮人海中,像哥这般风一样的男子一瞬而过会便会引来无数路人的爱慕嫉妒恨,而哥还是哥。当你寂寞空虚无奈的时候,向天空怒吼哥的名字。。。哥便会穿越时空来抚慰你受伤的肉体和心灵。
-
2011-04-18
程序包 - [Mathematica编程]
Mathematica中只有函数,没有子程序的概念。程序包是一段特殊格式的完整程序,其中定义了一个或者多个函数。只要将程序包运行一次,就如同内部的函数一样使用其中的函数。
程序包的格式如下:
BeginPackage[“上下文`”]
函数名::usage=”函数说明字符串”
Begin[“`Private`”]
程序段
End[]
EndPackage[]
程序包中主要是自定义函数,函数由f[x_],With[],Modole[],Block[]定义。
程序包中Begin和End必须成对出现。
从程序包中的第二句开始建立本程序包中函数的函数名,并给出使用的说明字符串,当程序包调入后用户可以用 ?函数名 来查询说明字符串。
在程序中可以插入注释,格式为:
(* 注释字符串 *)
-
2011-04-18
Mathematica的变换规则 - [Mathematica编程]
一.变换规则和表达式求值
在Mathenatica中,所有输入的东西都是表达式,Mathematica对用户键入的表达式的执行过程成为求值。求值的结果可能是数值,也可能表达式,也可能是图形等,出现问题时,还有可能给出的是文字提示。
Mathematica求值的过程是:Mathematica试图运用变换规则库内的变换规则对表达式进行变换,直到没有变换规则可用为止。Mathematica的内部函数都是变换规则,启动时,变换规则库已经存在了一个内部的变换规则集合。
用户可以自己定义一些变换规则,Mathematica会自动把这些规则加入到变换规则库中,组成用户自定义的变换规则集合。
Mathematica会自动查找用户定义的规则集与内部规则集,从中寻求可用的变换规则。
Mathematica一般会反复的查询规则集与内部规则集,直到计算出最后不变的形式,然后再输出计算结果。
定义两个变换规则
p=3 x;
x=2;
若查询p,?p,返回p=3x。
输入表达式p,返回6。
在求表达式p的值时,Mathematica首先查询到p=3x,再查询到x=2,带入上式。得到p=6。输出结果。
如果接着键入
x=.
清除了变换规则x=2。
若求表达式p。则返回3x。即Mathematica查询不到关于x的规则,则直接输出3x。
再看下面,输入下面语句。可以更好的认识规则和两种等号的区别。
x = 2;
p = 3 x;
f[x_] = 3 x;
q := 3 x;
g[x_] := 3 x
分别查询?p,?f,?q,?g
返回结果p=6,f[x_]=6,q:=3x,g[x_]:=3x
即对于新变量,新函数的及时定义是先同时查询规则库中的规则,运算,然后赋值给变量。
但延迟定义即不会事先查询规则库。而是在正式使用的时候再查询规则库,计算,输出结果。
下面的例为函数多规则定义。与其他的函数式编程语言很相近。输入
f[x_]:=2 x;
f[2]:=0;
则f函数被多条规则定义了。
输入f[2],返回0
输入f[3],返回6
查询?f,返回f[2]=0 f[x_]:=2 x
可以使用“f[x]=.”来消除f的定义。此后再使用f[2],则返回,f[2]=4。
二.非自动使用的变换规则
使用“=”“:=”定义的规则都会把规则放入规则库中,还有另一类非自动使用的变换规则,它们不能放入规则库中,不会被Mathematica自动使用,只能由用户需要的时候键入执行。
非自动使用的变换规则采用“->”,“:>”来代替“=”和“:=”。
“->”,“:>”区别:是否对符号右边的表达式立即求值。
执行变换的语句:
表达式/.规则库
对表达式中的各项尝试使用一次规则表中的规则。
表达式//.规则表
反复使用规则表中的规则直到结果不变。
例,变换规则表的使用:
输入[1] 2 x^y/.x->1
返回[1] 2
输入[2] 2 x^y/.{x->2,y->3}
返回[2] 16
输入[3] 2 x^y/.{{2->a},{x->2},{x->a,y->b^2} }
返回[3] {a x^y,2^(1+y),2 a^(b^2)}\
输入[4] f[y_]=%[[2]]
接着查询[5] ?f
返回[5] f[y_]=2^(1+y)
输入[6] f[2],返回8。
更复杂的变换,使用带模式的变换规则。
输入[1] x^2+2 x^4-x^6/.x^n_->x^(n/2)
返回[1] x+2x^4-x^3
输入[2] %/.x->x^2
返回[2] x^2+2 x^4-x^6
输入[3] %1/.x^n_->x^(2 n)
返回[3] x+2x^4-x^6
Mathematica与人的理解不是一致。
用n_.代替n_ ,这是如果n不出现,则默认为n=1。类似的有x_+y_. ,这里y不出现,则y=0 。x_y_. 若y不出现,则y=1。
输入[4] %1/.x^n_.->x^(2 n)
输出[4] x^2+2 x^4-x^6
以下说明“/.”与“//.”的区别。
输入[1] f[f[x]]/.f[x_]->Sin[x]
输出[1] Sin[f[x]]
输入[2] Sin[x^2+x^4]^2/./u_^n_->u^(n/2)\
输出[2] Sin[x^2+x^4]
可以看出,规则变换是从表达式外层向内层变换。
输出[3] g[y^2+Sin[x^2]^2]/.u_^2->u
返回[3] g[y+Sin[x^2]]
在同一层中,只要匹配合适,则按规则变换。
输入[4] x^4/.{x^4->x^2,x^2->x}
输出[4] x^2
虽然有多个变换规则,只是将表表达式变换一次。
使用“//.”
输入[1] f[f[x]]//.f[x_]->Sin[x]
返回[1] Sin[Sin[x]]
输入[2] Sin[x^2]^2//.u_^2->u
返回[2] Sin[x]
输入[3] x^4//.{x^4->x^2,x^2->x}
返回[3] x
“->”和“:>”的区别
输入[1] u_->Expand[u]
返回[1] u_->u
输入[2] u_:>Expand[x]
返回[2] u:->Expand[x]
输入[3] (1+x)^5/.u->Expand[x]
返回[3] (1+x)^5
输入[4] (1+x)^5/.u:>Expand[x]
返回[4] 1 + 5 x + 10 x^2 + 10 x^3 + 5 x^4 + x^5
三.带有条件的规则
使用“:=”和“:>”定义的变换规则,还可以附加条件
模式:=表达式/;条件
模式:>表达式/;条件
例:
c[n_,k_]:=n!/k!(n-k)!/;IntegerQ[n]&&IntegerQ[k]&&n>0&&n>=k>=0
则定义了组合数Cnk。
即,如果n是整数且n也为整数且n>0且n>=k>=0,满足条件,函数c[n
,k]才会得到定义,并且计算。
注意:Mathematica中,x!=Γ(x+1)。x可以不是整数。
还可以像下面的例子使用。
输入[1] x^2+x^3/.x^n_:>x^(n/2)
返回[1] x+x^(3/2)
输入[2] x^2+x^3/.x^n_:>x^(n/2)/;IntegerQ[n/2]
返回[2] x+x^3
限定n为偶数时,才会匹配变换,两种结果不同。
-
2011-04-18
立即定义和延迟定义的区别 - [Mathematica编程]
用几个基本的例子来区别“:=”和“=”的区别。
首先,
x = 2; f[x_] = 2 x; g[x_] := 2 x;
接着,?f
返回,f[x_]=4
如果,?g
返回,g[x_]:=2 x
以上例子把:=和=的区别显示的已经很清楚了。再看,
f[x_] = Expand[x];
g[x_] := Expand[x];
输入,f[(a + b)^2]
返回,(a + b)^2
输入,g[(a + b)^2]
返回,a^2 + 2 a b + b^2
=,在定义函数之时,先计算了等号右边的表达式。再把表达式赋值给函数。
:=,在定义函数的时候,不会作计算。延迟到实际使用函数的时候,才会计算,并把计算值返回输出。
-
2011-04-18
Mathematica中的模块和块 - [Mathematica编程]
一.模块
编写Mathematica不需要事先声明变量。用户所使用的变量都是全局变量。
Module是一种模块结构,在这种模块的内部可以建立并使用局部变量,具体格式如下。
Module
Module[{x, y, ...}, body]
其中前面的表用于声明局部变量,后面的body是程序表达式(一般都是复合表达式)
Module[{x=x0, ...},body]
其中前面的表可以声明局部变量并且赋初值。
With
With[{x=x0, y=y0, ...}, body]
和Module的作用基本相同。
二.块
Block(块),与Module(模块)相似,但又有所不同。结构如下。
Block
Block[{x, y, ...}, expr]
其中前面的表中声明局部变量在此结构中能够重新赋值,后面的expr是程序表达式(一般都是复合表达式)。结构返回expr的运行结果。
Block[{x=x0, ...}, expr]
给表中的变量赋予局部值。结构返回expr的运行结果。
说明,每次调用Module时,它的局部变量被Mathematica重新命名(原名加标号),不会与同名全局变量或其他Module中的同名变量混淆。
但是Block不重新命名块中声明的变量,如果已经存在同名的全局变量,则仍是同一变量,允许在expr中使用重新赋予的值。当Block执行完毕时,块中声明的变量的局部值被清除,并恢复原同名全局变量的值。因此,Block不能建立全局变量,只能声明能取局部值的全局变量,可用于暂时改变全局变量的值。
三.函数模式
函数名[参数1,参数2,……]:=( ….;…..;…..;…..)
()中的内容是具体的复合形式。
当然Module形式定义的函数是最为安全的。
-
2011-04-18
Mathematica中的基本对象 - [Mathematica编程]
一.表达式
Mathematica中的所有形式的对象都是基于函数来实现的。但是这里的函数的概念在Mathematica中成为表达式。表达式是Mathematica中最基本的对象。
许多不同形式的对象,如数学公式、列表、图形等,它们的形式不同,但是它们都是Mathematica中的表达式。
表达式的一般格式:f[a,b,...]
但是不介意把经常把表达式写成一般格式。
例:
x+y是表达式。写成一般格式是Plus[x,y]。显然,一般格式比较复杂而不利于输入。
二.列表
列表是 Mathematica 的主要结构,用来表示各种类型的集合、数组、序列。列表可以是任意结构和大小,甚至包含数百万个元素。
列表的一般格式:{e1, e2, ...}óList[e1,e2,…]
Table函数:
构造任意维数的列表。也可以相对应的构造向量、矩阵、张量和其它数组。以下是Table函数的一些应用形式。
Table[expr, {imax}] 产生一个 expr 的 imax 拷贝的列表。
Table[expr, {i, imax}] 产生i 从1到 imax 的一个的值的列表。
Table[expr, {i, imin, imax}] 以 i=imin 开始。
Table[expr, {i, imin, imax, di}] 使用步长 di.
Table[expr, {i, {i1, i2, ...}}] 使用连续值 i1, i2, ....
Table[expr, {i, imin, imax}, {j, jmin, jmax}, ...]
给出一个嵌套列表。和 i 相关联的列表是最外的列表。
注:Table[expr, spec1, spec2] 等效于 Table[Table[expr, spec2], spec1]。
三.定义变量
在 Mathematica 中,变量不仅可以代表一个数值,而且可以作为一个纯粹的符号来使用。
Set(=) — 直接赋值
lhs=rhs
计算 rhs 并把赋给 lhs。 lhs 将总是被 rhs 替换。
{l1, l2, ...}={r1, r2, ...}
计算 ri,并将结果赋给对应的 li。
SetDelayed (:=) — 延迟赋值 (当需要时为等号右侧赋值)
lhs:=rhs
将 lhs 延时赋给 rhs。rhs 保留未计算的形式。当 lhs 出现时,它用 rhs 替换,并且每次重新计算。
Unset (=.) — 取消一个变量
lhs=.
去掉对 lhs 定义的任何规则。
Clear —取消一个函数定义
Clear[symbol1, symbol2, ...]
清除关于 symboli 的值和定义。
Clear["form1", "form2", ...]
清除关于其名称与任何字符串模式 formi 相匹配的所有符号的值和定义。
四.函数
Mathematica中的表达式本质上都是由函数所定义的。Mathematica中有上千的函数。但是实际数学应用中的函数千变万化,需要自己定义。
立即定义函数:
f[x_]=expr
f[x_,y_]=expr
定义函数f(x),Mathematica会先执行expr,然后再把计算的结果赋值给函数f。
延迟定义函数:
f[x_]:=expr
f[x_,y_]:=expr
只有当真正调用函数f[x_]:=expr时,Mathematica才会将expr中的变量x换成变量值,再定义函数。
和其他计算机语言类似。函数f,是一个特殊的变量。
Mathematica允许把一个表达式作为函数的自变量。
例如可以定义:
Plus2[a_*b_]=a+b
五.字符串
Mathematica大部分是由结构的表达式,但它也可以用来作为无结构的文本处理系统。
字符串的一般格式:"text" — 字符串,包含统一的字符编码标准或专用字符
一般字符串的头为String。
例:”This is a string.”
Head[”This is a string.”] 返回的将是String。
字符串的一般操作
连接字符串
StringJoin (<>)
"s1"<>"s2"<>...,StringJoin["s1", "s2", ...] 或 StringJoin[{"s1", "s2", ...}]
例:”aaa”<>”bbb”<>”ccc”
返回的是”aaabbbccc”。
StringLength
StringLength["string"] 返回字符串中字符的个数。
例:StringLength["Mathematica"]
返回的是11
六.模式
Mathematica模式的标志是“_”,其基本规则是代表任意表达式。例如f[x_]表示形如f[anything]的表达式。并且将表达式angthing命名为x以便在变换规则中引用。可以把“_”放在表达式中的任何位置,得到与能以任何方式填充的表达式匹配的模式。
-
2011-04-18
Mathematica基本语法的重要性 - [Mathematica编程]
Mathematica是世界上最为优秀的符号计算系统。虽然是商业软件,但是开源世界的scilab,python与之比起,差距还是比较大。和Matlab类似的是,Mathemataca具有丰富的函数库,和自身所独有的语法。可以说Mathematica就是一门计算机语言。初学Mathematica很容易被那些五花八门的函数所吸引,而偏离了学习一门语言的真正内容。
事实上,市面上很多Mathematica的参考书籍也都是着重强调函数,而对语法的知识只做略微的介绍,甚至更本就不成体系。
内部丰富的库函数固然重要,但是如果能熟练的掌握语法,就能编制出很多很不可思议的程序。正如学习Matlab那样,函数很强大,但是有了语法才能更全面的展现函数的威力。
这里的一切资源来自网络与参考书籍。
-
2011-04-18
Mathematica基本程序设计 - [Mathematica编程]
Mathematica和其他任何编程语言一样,拥有赋值,条件,循环等齐全的程序设计语法。不过在Mathematica中,这些都是用函数来体现出来的。
一.顺序语句
expr1;expr2;...exprn
依次对 expri 计算,将最后一个expn作为结果返回。
expr1;expr2;...exprn;
依次对 expri 计算。不返回任何结果。
二.赋值语句
1.基本赋值
x=v — 赋值 (Set)
{x,y}={u,v} — 赋多值
{x,y}={y,x} — 交换值
{l1, l2, ...}={r1, r2, ...} — 利用列表对多个变量赋值
a[[i]]=v — 对一个列表/数组/表达式元素赋值
另外Mathematica支持,类C语言中的特殊赋值符号
x++ (Increment)
++x (PreIncrement)
x+=y (AddTo)
x-- (Decrement)
--x (PreDecrement)
x-=y (SubtractFrom)
x*=y (TimesBy)
x/=y (DivideBy)
2.立即与延迟
另外Mathematica中的函数分为快速分配和延迟分配。
基本形式就是利用“=”和“:=”。
lhs=rhs — 快速分配,在分配的同时计算 rhs
lhs:=rhs — 延迟分配,每次调用时重新计算 rhs
3.清除赋值
x=. — 清除 x 的值(Unset)
Clear — 清除与一个符号相关的所有值
ClearAll ▪ Remove
三.条件语句
1. 方程与不等式
Equal (==), Unequal () — 数字方程
SameQ (), UnsameQ () — 字符等式
Less(<) ▪ Greater(>) ▪ LessEqual(<=) ▪ GreaterEqual (>=)
2. 逻辑和布尔代数
以下符号均是建立在布尔代数的基础之上的。
且And(&&, )
或Or(||, )
非Not(!, ¬)
Nand() ▪ Nor() ▪ Xor() Xnor() ▪ Implies() ▪ Equivalent()
3. 条件语句
3.1 If指令
If[condition, t, f]
如果condition为True,那么计算t语句,如果为 False 计算 f语句。
If[condition, t, f, u]
如果 condition 既不为 True 也不为 False ,则计算u语句。
3.2 Which指令
Which[test1, value1, test2, value2, ...]
依次计算每个 testi ,返回相应于产生True的第一个valuei 的值。
3.3 Switch指令
Switch[expr, form1, value1, form2, value2, ...]
计算 expr, 然后依次和每个 formi 比较,计算并返回相应于找到的第一个匹配的 valuei。
四.循环语句
1. Do指令
Do[expr, {imax}]
对 expr 计算 imax 次。
Do[expr, {i, imax}]
将变量 i 从 1 递增到 imax (步长为 1 ),计算 expr。
Do[expr, {i, imin, imax}]
从 i=imin 开始。
Do[expr, {i, imin, imax, di}]
使用步长 di。
Do[expr, {i, {i1, i2, ...}}]
使用连续的值 i1,i2,...。
Do[expr, {i, imin, imax}, {j, jmin, jmax}, ...]
对每一个 i 循环地根据不同的 j 等,计算 expr 。
2. While指令
While[test, body]
重复计算test然后是body,直到test第一次不能给出True。
3. For指令
For[start, test, incr, body]
执行 start,然后重复计算 body 和 incr,直到 test 不能给出 True。
4. Table函数
该函数也有循环的功能,不过Table会返回列表。这类似于Python的解析列表。
五.函数
这里所谓的函数多为纯数学函数。
一般用延迟定义来定义函数。
f[x_]:=body
-
2011-03-19
默默的,默默的。。。我只能默默的。 - [物理学]
感兴趣的东西太多,发现总是把自己的精力放在了太多太多杂七杂八的其他科目中。回过头来看看自己,学的东西乱七八糟。什么都有,但是没有一个是有实际用处的。那些电路,那些代码。。。。。。
看群论,真的就感觉,数学之美是那么简洁而深刻。还有那么多牛X至极的物理书没有仔细钻研,自己却不知道为什么钻到其他的地方去学了些乱七八糟东西。
《物理学中的群论基础》基本上就是陶瑞宝那本的简明版。但是有些东西看的很是不爽。配合陶先生的那本,凑活看看,还行。我要坚持把这书看完。然后定定心心的重新学一遍量子力学。。。
深切感受自己到电动力学知识的薄弱。花点时间做一下林璇英,张之翔的《电动力学题解》,这本应该是国内最好的电动力学的习题集了。同时也可以稍带的复习数学物理方法。杰克逊的书想买,但是不知道为什么,现在市面上没有中文版的卖。还好是有电子版。但是,奚定平的那本习题解一是买不到,而是下不到。网上只有国外英文的习题答案。。。。。
-
上班以来第一次休息。突然不知道该干什么了。我这半年在家是怎么过的。。。。so又开始了。开启迅雷,挂上QQ,带上耳机,听着低俗音乐。
如果你是我的同学,请打开音乐,最好是那种舒缓的情歌。然后往下看。tt说,他们那边又走了2个人。也就是那boss手下也就两个卒子了。我劝tt你要走就早点走吧。tt说,要离职证明,一个月后才能走,但是谁来等你一个月。
他一直担心房租的问题。他怕换了工作房租什么的会很贵。tt告诉我,姚换了个工作,结果原来的那个公司要姚赔偿损失。我啥也没说。我一直挺喜欢姚的。真的不知道该说什么好,只能无指向的咒骂了两句这个社会。
小方应该是南京那边最幸运的了。到了公司半年就升了新校区主任。但是,新点招不到人。估计连老师也找不到。现在日子也好不到哪去。他的脾气我懂的,他不是那种特别有耐心的人,困难面前真怕他会坚持不住。他想让我去南京。小方一直很照顾我。这时候我应该去帮他的。但真的,我走不了。其实综合各种客观因素后我也害怕。小方自己说,他变了。我怕他不是以前的那个他了。我更怕因为工作上的不合谐,导致我和他的不和谐。
小贺的状态应该还可以,不过上次见他也未见他脸上有半点活力。
阿飞,我也不知道他到底怎么样。他总是那副腔调,就算穿上西装也是那副腔调。我只是不断的明示暗示,你该找个女人了。同样的话我也和tt说过。
等有空了必须去南京看看我这帮兄弟,上次tt和小方请吃饭的,我有工资了,必须我来。
说起来也搞笑,前两天a帆找我打魔兽,他那个臭水平,任意虐。我说,再打一局。他说打了一天,打不动了。照理来说,还是学生的他日子应该不是那么的遭。但是如果不是很糟的话,打一天的魔兽是不是也太浪费时间了。他和小薛不知道还有没有继续。。。。大学时,我偷偷的预言过,班对没有一个好结果。千万别被我预言中。我真切的希望他们都能修成正果。
水han结婚了,我们班第一个结婚的。上礼拜他退出了我们的魔兽群。我想一个方面是,我有事没事的就在群里扯上两句无聊的话题,他是个非常现实的人。我的各种不切实际的扯淡性话题他肯定不会感兴趣,so他烦了,退了。另一方面,他的婚礼我们没一个人去了。其实这真的不怪我们,2月1号结婚,丫的还有两天过年。忙还来不及呢。他直接结婚了。。。。我只是希望他能理解我们。
伟帅哥也还是伟帅哥,工作了就好,别歇着。我只是希望他别太沉不住气。
但是tupi,帅气的tupi,别老是在上班的时间混网吧了。昨天晚上和minik在群里扯电影。凯子还是凯子。一如既往的伪装着自己的空虚。。。。。。他,正常。
PS:刚看到rr上阿标的状态。。这丫的也要结婚了。结巴,结巴。。。哥会坚挺住的。
-
2011-02-15
VPython 模型对象——球,立方体,环,箭头 - [Python]












