把遇到的有意思的问题写出来,尤其是跟数学相关的问题,目的是自我监督,尽量把代码写规范些、用的方法更好一些,否则自己写又会草草了事了。。。
目录:
1、随机数 top20均值 随机抽取20组 问题
——————————————————————————————————————
1、今天15级的群里面有个学弟提的问题:
有100个数,服从正态分布。取其中最大的20个数,求出平均值为n;如果这100个数随机不放回抽取,每5个数为一组,取最大值,直到取完100个数,得到的20个最大值,求出平均值为m。那么,n和m是什么关系?
这个问题暂时想不清,做一个实验:
#-*- coding:utf-8 -*- import numpy as np import pandas as pd import matplotlib.pyplot as plt class ARandomQuetion(object): """docstring for ARandomQuetion""" def Discovery(self): randomnumber = np.random.randn(100) #注意sorted是拷贝一份排序好的序列,原序列不变,而sort就是就地修改 srandomnumber = sorted(randomnumber) meanoftop20 = np.mean(srandomnumber[-20:]) #返回一个随机排列,然后每隔5个数取作一组 permutation = np.random.permutation(100) seq = range(0,100,5) pick20 = [max(randomnumber[i:i+5]) for i in seq] meanofpick20 = np.mean(pick20)
return meanoftop20,meanofpick20 ARQ = ARandomQuetion() top20 = [] pick20 = [] #作100次实验 for i in xrange(100): before,after = ARQ.Discovery() top20.append(before) pick20.append(after) fig,axes = plt.subplots(1,1) axes.plot(top20,label = ‘mean of top20‘) axes.plot(pick20,label = ‘mean of pick20‘) axes.legend(loc = ‘best‘) plt.show()
然而,结果并不明显。。。
额,理论上的结果明天再想。
时间: 2024-11-05 07:01:07