我正在编写和测试a / b测试库。我正在使用Math.Random(...)调用在变体之间拆分访问者。
然而,这并不顺利。变异A与变异B的显示差异超过20%。
有没有人知道更好的选择,除了比较显示器,如果差异大于X%,决定在不调用Math.Random的情况下显示其他变体?
答案 0 :(得分:2)
如果您希望100%确定在A和B之间具有相同数量的视图,则应该在cache / db中存储已为其指定了最后一个变体的变体。然后在每个请求上分配其他变体。这样你就有了A / B / A / B / A / B等。
答案 1 :(得分:2)
如果你想让事情比A / B / A / B / A / B答案更随意,你可以将你随机生成的A或B的几率与成员最少的组相比较。
例如,如果Random返回一个介于0和1之间的数字,那么您将得到以下内容:
variation = if(Random() > 0.5) { variationA } else { variationB }
如果将其更改为(nrOfA / B =选择A / B的次数):
variation = if(Random() > (nrOfB / (nrOfA + nrOfB))) { variationA } else { variationB }
然后选择A或B的可能性将取决于它们与另一个相比有多大。较大的B与A相比,A的选择机会越大,反之亦然。