“拍照赚钱”是移动互联网下的一种自助式服务模式。用户下载APP,注册成为APP会员,然后从APP上领取需要拍照的任务(比如上超市去检查某种商品的上架情况),赚取APP对任务所标定的酬金。这种基于移动互联网的自助式劳务众包平台,为企业提供各种商业检查和信息搜集,相比传统的市场调查方式可以大大节省调查成本,而且有效地保证了调查数据真实性,缩短了调查的周期。因此APP成为该平台运行的核心,而APP中的任务定价又是其核心要素。如果定价不合理,有的任务就会无人问津,而导致商品检查的失败。
附件一是一个已结束项目的任务数据,包含了每个任务的位置、定价和完成情况(“1”表示完成,“0”表示未完成);附件二是会员信息数据,包含了会员的位置、信誉值、参考其信誉给出的任务开始预订时间和预订限额,原则上会员信誉越高,越优先开始挑选任务,其配额也就越大(任务分配时实际上是根据预订限额所占比例进行配发)。附件一和附件二的表结构如表7-1和表7-2所示。
【实验步骤】 1.计算第0个任务到第1个任务、第0个任务到第0个会员之间的距离。 import pandas as pd import numpy as np import math A=pd.read_excel('附件一:已结束项目任务数据.xls') B=pd.read_excel('附件二:会员信息数据.xlsx') A_W0=A.iloc[0,1] A_J0=A.iloc[0,2] A_W1=A.iloc[1,1] A_J1=A.iloc[1,2] B_WJ=B.iloc[0,1] I=B_WJ.find(' ',0,len(B_WJ)) B_W0=float(B_WJ[0:I]) B_J0=float(B_WJ[I:len(B_WJ)]) d1=111.19*math.sqrt((A_W0-A_W1)**2+(A_J0-A_J1)**2*math.cos((A_W0+A_W1)*math.pi/180)**2); d2=111.19*math.sqrt((A_W0-B_W0)**2+(A_J0-B_J0)**2*math.cos((A_W0+B_W0)*math.pi/180)**2); print('d1= ',d1) print('d2= ',d2) 执行结果如下: d1= 13.71765563354376 d2= 48.41201229628393 2.小步进阶:第0个任务与所有任务、所有会员之间的距离。 import pandas as pd import numpy as np import math A=pd.read_excel('附件一:已结束项目任务数据.xls') B=pd.read_excel('附件二:会员信息数据.xlsx') A_W0=A.iloc[0,1] A_J0=A.iloc[0,2] D1=np.zeros((len(A))) D2=np.zeros((len(B))) for t in range(len(A)): A_Wt=A.iloc[t,1] A_Jt=A.iloc[t,2] dt=111.19*math.sqrt((A_W0-A_Wt)**2+(A_J0-A_Jt)**2*math.cos((A_W0+A_Wt)*math.pi/180)**2); D1[t]=dt for k in range(len(B)): B_WJ=B.iloc[k,1] I=B_WJ.find(' ',0,len(B_WJ)) B_Wk=float(B_WJ[0:I]) B_Jk=float(B_WJ[I:len(B_WJ)]) dk=111.19*math.sqrt((A_W0-B_Wk)**2+(A_J0-B_Jk)**2*math.cos((A_W0+B_Wk)*math.pi/180)**2); D2[k]=dk 3.初步落成:对第0个任务计算指标Z1、Z2、Z3、Z4、Z5。 import pandas as pd import numpy as np import math A=pd.read_excel('附件一:已结束项目任务数据.xls') B=pd.read_excel('附件二:会员信息数据.xlsx') A_W0=A.iloc[0,1] A_J0=A.iloc[0,2] D1=np.zeros((len(A))) D2=np.zeros((len(B))) for t in range(len(A)): A_Wt=A.iloc[t,1] A_Jt=A.iloc[t,2] dt=111.19*math.sqrt((A_W0-A_Wt)**2+(A_J0-A_Jt)**2*math.cos((A_W0+A_Wt)*math.pi/180)**2); D1[t]=dt for k in range(len(B)): B_WJ=B.iloc[k,1] I=B_WJ.find(' ',0,len(B_WJ)) B_Wk=float(B_WJ[0:I]) B_Jk=float(B_WJ[I:len(B_WJ)]) dk=111.19*math.sqrt((A_W0-B_Wk)**2+(A_J0-B_Jk)**2*math.cos((A_W0+B_Wk)*math.pi/180)**2); D2[k]=dk Z1=len(D1[D1<=5]) Z2=A.iloc[D1<=5,[3]].mean()[0] Z3=len(D2[D2<=5]) Z4=B.iloc[D2<=5,[2,4]].sum()[0] Z5=B.iloc[D2<=5,[2,4]].sum()[1]/Z3 print('Z1= ',Z1) print('Z2= ',Z2) print('Z3= ',Z3) print('Z4= ',Z4) print('Z5= ',Z5) |