python是一个功能很强大的语言,他可以解决各种在数学问题,下面我分享一些练习题供大家参考:
有关正态分布的问题:
1 # -*- coding: cp936 -*- 2 import math 3 a=0 4 u=0 5 x=0 6 while 1: 7 a =int(input("please input a :")) 8 ifa<0: 9 print "请重新输入:" 10 elifa>0: 11 break; 12 u = int(input("please intput u :")) 13 x = int(input("please intput x :")) 14 fs =(1/math.sqrt(2*math.pi)*a)*math.exp(0.5*(math.pow(((x-u)/a),2))) 15 print "this fs is :%.2f"%fs;
关于平抛运动矢量位移:
1 v0 =10 2 g= 9.81 3 #t = int(input("please input a time:")) 4 #h = v0*t+0.5*g*t**2 5 #print "this h is :%.2f"%h; 6 7 while 1: 8 h =int(input("please input a hight:")) 9 #h =v0*t+0.5*g*t**2 10 t1=(-v0+(v0**2-4*0.5*g*(-h))**0.5)/(2*0.5*g) 11 t2=(-v0-(v0**2-4*0.5*g*(-h))**0.5)/(2*0.5*g) 12 ift1>0: 13 print "this time1 is:%.2f"%t1; 14 ift2>0: 15 print "this time2 is :%.2f"%t2;
python的函数式编程
判断一个数是不是质数:
1 >>>f = lambda x:not reduce(lambda x,y:x or y,[x%i==0 for i inrange(2,x)]) 2 >>> f(97) 3 True 4 >>> f(96) 5 False
求最大公约数:
1 >>> f = lambdam,n:[i for i in range(min(m,n),0,-1) if m%i==0 and n%i==0][0] 2 >>> f(123,77) 3 1 4 >>> f(125,100) 5 25
计算给定数字的阶乘:
1 >>> f = lambdax:reduce(lambda x,y:x*y,[i for i in range(1,x+1)]) 2 >>> f(5) 3 120
1 >>> zip3 = lambdal1,l2,l3:[(l1[i],l2[i],l3[i]) for i in range(len(l1))] 2 >>>zip3([1,2,3],['a','b','c'],[1j,2j,3j]) 3 [(1, 'a', 1j), (2, 'b', 2j), (3, 'c', 3j)]
python的reduce函数的应用:
1 >>> f = lambdal:reduce(lambda x,y:x*y,l) 2 >>> f(l) 3 0 4 >>>f([1,2,2,3,4]) 5 48
蒙特卡洛近似求解
1.求圆周率:
1 import random 2 import math 3 def round_(num): 4 i=0 5 number=0.0 6 whilei<num: 7 x = random.random() 8 y = random.random() 9 10 y_=s(x) 11 if y<=y_: 12 number+=1 13 i+=1 14 return4*number/num 15 def s(a): 16 returnmath.sqrt(1-math.pow(a,2))
2.求面积:
1 import random 2 def f(num): 3 i=0 4 s=0.0 5 while i<num: 6 x = random.random() 7 #print x 8 y = random.random() 9 y_=ft(x) 10 if y<=y_: 11 s+=1 12 i+=1 13 return s/num 14 15 16 def ft(a) : 17 return a*a