看了各位大咖的文章,谁人不说“蜀道之难”?记得小时候读过的书里就写着科学家证明“1+1”的故事,科学发展到那时,谁不认为自己的想法是“小巫见大巫”呢?一位要给《诗经》作注解的同事说,《诗经》那时的文明就达到这样的高度了,那么《诗经》之前的文明是怎样的呢?看了这些之后,我感觉自己要落后了好几千年。
而我依然在记代码,依然在每天练习,“游戏”,是我们的处世之道。
曾经看过一幅漫画,在拐弯处的公路和立交桥交叉成不可思议的麻花状,让我们找不到来路和去路。我想这是初学者都有过的体会,几种想法交织在一起,理不清头绪。
经过一番寻找,我们知道了各种事物都可以用简单的“if...then...”等条件和循环语句组成,“一生二、二生三、三生万物”,要问什么是“一”,先“define”一下“一”。
然后是“文科”和“理科”之争,理可以衍生出文,文却不能变成理,就像“书可以入画,画不可以入书”一样。可是当把时间都花在“理”当中的时候,却没有时间再顾及“文”了,发明者制造了美丽的花瓶,却造不出一朵鲜花。
掌握了编程的工具,还得有专业知识,而待掌握了专业知识之后,再想编程时又好像已经过时了,于是好像陷入了“有钱没闲,有闲没钱”的循环当中。但这能怪谁呢,不是所有的地方都能变成旅游景点,我们便只能对别人的美丽赞叹观瞻吧。
说了这么多,都是在灌水,结尾来点干货吧。有一个这样的问题(这个问题有些偏,看不懂大可跳过不看):怎么用均匀概率分布的随机数产生某种函数分布的随机数。设有一个函数为y=f(x),x=g(y),dy/dx=f',dx/dy=g'=1/f',又设x均匀分布在数轴x上,则dy=f'dx,则在此x对应的y上的点的密度是1/f'=g',即的分布是g'——反函数的导数,于是要构造函数,只需求积分,再求反函数即可。举例如下:设g'=exp(-x),积分得g=1-exp(-x),反函数为f=-ln(1-x)。用java编的随机数程序:
import java.lang.Math;
public class ran{
public static double random2(){
int i,j;
double x=1,y;
x=Math.abs(Math.random());
y=-Math.log(1-x);
return y;
}
public static void main(String[] args){
int l5=0,g5=0,h5=0,k5=0;
for(int i=0;i<100000;i++){
double r=ran.random2();
if(r>0.9&&r<1.1){
l5++;
}else if(r>2.9&&r<=3.1){
g5++;
}else if(r>4.9&&r<=5.1){
h5++;
}else if(r>6.9&&r<=7.1){
k5++;
}
}
System.out.println(l5+" "+g5+" "+h5+" "+k5); //统计结果和exp(-x)的函数值比例一样
}
}
这次发文,不是为了奖品,只因那句“错过就真的要等一年了”让我心动,希望技术劳动也可为节日增添几分浪漫。



