拆解拼多多“砍一刀”:写个脚本跑一下它的病毒传播K因子

拼多多这个“砍一刀”的机制,从产品角度看,是教科书级别的病毒传播设计。我不用它,但我必须知道它怎么运作的。今天的目标不是骂它,是用代码把它拆开,看看它的病毒系数K到底是怎么被设计出来的。

第一步是抓包。用Fiddler挂代理,模拟一个“砍一刀”的完整流程。你会发现几个关键API:一个是初始化砍价信息,返回当前价格、已砍金额、还需金额,还有一个是“助力”接口,每次请求返回一个随机的“砍掉金额”。这个“随机”就是魔鬼所在。我写了个Python脚本,用requests库模拟了1000次助力请求,把每次砍掉的金额记录下来做分布分析。结果非常清晰:前几次助力,金额分布在高位区间,动不动就是几十块、十几块;到了中后期,金额分布急剧向低位收缩,一块、几毛;最后那1%的进度,金额分布几乎全集中在几分钱甚至几厘钱。这不是随机,这是精心设计的概率分布函数。

这就引出了病毒系数K的核心计算。K = 每个用户带来的新用户数 * 转化率。在“砍一刀”模型里,“每个用户带来的新用户数”就是你需要拉多少人头。但这里有个陷阱:这个所需人头数不是一个固定值,而是一个随着进度不断变化的期望值。前期给你甜头,让你觉得“再找两三个人就够了”,这个期望值很低,你动力十足。到了后期,一刀一分钱,你需要的人头数期望值呈指数级上升,但你已经投入了太多社交关系,陷入了沉没成本陷阱——“都砍了99%了,不能放弃”。

我用蒙特卡洛模拟来量化这个“邪恶”。脚本逻辑是这样:设定一个初始价格(比如100块),定义一个“砍价金额概率分布函数”,这个函数根据当前剩余金额百分比动态调整——剩余金额越多,高额砍价的概率越高;剩余金额越少,低额砍价的概率越高。然后开始模拟:每次“助力”根据当前进度从分布中随机抽取一个砍价金额,累加,直到总砍价金额>=100。记录下这次模拟总共需要的助力次数。把这个过程重复10000次,就得到了“所需助力次数”的概率分布。

跑出来的数据很有意思。在理想的“均匀社交压力”模型下(假设你每个好友都愿意且能帮你点),平均需要大约15-20次助力就能砍成。但这是理想情况。现实是,你的社交关系有密度和质量之分。我在模型里加入了“助力成功率”参数,模拟好友不愿意点或者已经帮别人点过的情况。当成功率降到70%以下时,所需助力次数的期望值开始陡增,并且方差变得极大。这意味着,对大部分普通人来说,这个任务会变成一个几乎不可能完成的无底洞,但总会有少数社交能量爆表的“超级节点”能完成,并制造出成功的案例,继续吸引更多人跳坑。

这就是拉新边际成本递减的魔术。平台几乎零成本获取了你的社交关系链和无数次曝光。而那个“还差0.01%”的进度条,是算法对你沉没成本的极限拉扯。它算准了你不会为了最后的几分钱放弃前面已经付出的99块9毛9的人情。

最后,我算了一下这个模型的K因子。在前期,一个用户可能只需要拉3-5个新人就能获得巨大反馈,此时的K值远大于1,病毒传播启动。但到了传播中后期,对于大多数用户,K值迅速衰减到远小于1,传播链断裂。平台用前期的少数成功案例作为燃料,烧起了整个增长的熊熊大火,而大多数用户,只是那根被烧掉的柴。

关掉编辑器。看着屏幕上那行“平均助力次数:17.3(理想模型)”和“在60%助力成功率下,90%用户无法在50次助力内完成”的输出结果。你不得不叹服,这确实是一个将人性、概率和社交网络拓扑结构算计到极致的数学模型。它不优雅,甚至很脏,但有效得令人脊背发凉。这就是2018年的流量战争,没有温情,只有算法和转化率。

© 版权声明
THE END
喜欢就支持一下吧
点赞93 分享