不用谢
亲爱的上海lx的同学
import numpy as np
import math
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
def second():
face_num = 10000
t = np.random.random(size=face_num)
t1 = np.random.random(size=face_num)
x = t
y = t1
z = np.zeros(t.shape)
zr = np.zeros(t.shape)
i_set = np.arange(0,face_num,1)
for i in i_set:
#len = np.sqrt(np.random.random())
x[i] = x[i] * 1
y[i] = y[i] * 1
z[i] = np.exp(np.square(x[i]+y[i]))
zr[i] = np.random.random(1)*81
fig = plt.figure()
ax = Axes3D(fig)
ax.scatter(x,y,z,c = 'r', marker = '.')
ax.scatter(x,y,zr,c = 'b', marker = '.')
plt.xlim(0,1.1)
plt.ylim(0,1.1)
plt.xlabel('x')
plt.ylabel('y')
plt.title('Random Scatter')
n = 0
for i in range(face_num):
if zr[i]<z[i]:
n +=1
ratio = n/face_num
value = ratio * 81
print(ratio, value)
plt.show()
return value
if __name__ == '__main__':
N = 10 # 实验重复N次
second_value_list = []
for i in range(N):
second_value_list.append(second())
print(second_value_list)
# 计算估计均方差
means = sum(second_value_list) / N
mse = sum([(np.square(second_value_list[i] - means)) / N for i in range(N)])
print(means)
print(mse)
```****
```