遇到一个问题,有点把我难住了。已知一个固定double值,求一组double数据,这一组double的平均值刚好等于或非常接近于这个固定值。
问题:
1、固定值、max、min、禁止区都是根据动态数据每调用一次函数,计算出来的,属于变量。
2、求一个高效的计算出一组平均值数据的方法。
3、由于是double的数据,求出的数据只要非常接近“固定值”(±1%范围)即满足实际需求。
我的思路:
1、先获取一个值,判断是否大于“固定值”,根据大于小于,下一次取值则随机取反方向的。
2、直到最后一个值,计算已有数组平均值,判断与“固定值”大小关系,然后计算。X =(固定值-平均值 )*Count +固定值,这样计算没有什么问题。但最终计算出的X很可能超出了范围限定。
3、目前没有更好的计算方法,只能判断计算出X值超过范围,则从新执行一遍函数,重新产生随机数。但存在一个很严重问题,并且这个问题出现的概率还不小。假如:min或max的范围很小(一般min的下区间范围小,则max的区间要大一些的。max区间也是相反的),比如只有0.65-0.68之间,那么就几乎会无限循环下去。