# -*- coding: utf-8 -*-
# by whyx 2017/1
import numpy as np
import pylab as pl
#初始化选择的丈夫列表
hus = []
#生成一个 1-100 的顺序
L = np.arange(1,101,1)
for k in range(10000):
#随机打乱排序
np.random.shuffle(L)
#选出37个前面最大的一个
m37 = max(L[0:37])
found = False
#是否能够找到比m37 大的?
for i in L[37:]:
if i > m37 :
found= True
hus.append(i)
break
#找不到, 就只能选择最后一个
if not found:
hus.append(L[99])
print hus
#pl.plot(hus)
#柱状图, 100个格子
pl.hist(hus, bins=100)
pl.show()
# -*- coding: utf-8 -*-
# by whyx 2017/1
import numpy as np
import pylab as pl
import mpl_toolkits.mplot3d
import matplotlib.pyplot as plt
def sel_hus(n=37, bin=100):
#初始化选择的丈夫列表
hus = []
#生成一个 1-100 的顺序
L = np.arange(1,101,1)
for k in range(10000):
#随机打乱排序
np.random.shuffle(L)
#选出37个前面最大的一个
m37 = max(L[0:n])
found = False
#是否能够找到比m37 大的?
for i in L[n:]:
if i > m37 :
found= True
hus.append(i)
break
#找不到, 就只能选择最后一个
if not found:
hus.append(L[99])
# print hus
bins = np.histogram(hus, bins=bin)[0]
return bins
#参数
#number of bins
bin = 100
#尝试的百分比
x_array = range(20,60,4)
#print (sel_hus(37))
x, y = np.mgrid[20:60:4, 0:bin]
print len(x), x
print len(y), y
#g = np.exp(-x**2 - y**2)
#print g
z = []
for i in x_array:
# z = z + (list(sel_hus(i)))
z.append(sel_hus(i, bin))
print len(z), z
pltz = np.array(z)
z = pltz.reshape(len(x_array),bin)
print len(z), z
ax = plt.subplot(111, projection = '3d')
ax.plot_surface(x,y,z, rstride=2, cstride=1, cmap = plt.cm.Blues_r)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('n')
#ax.legend()
plt.show()