AB测试排序

import numpy as np

def binarycoder(quotient):
    result = []
    while quotient > 0:  
        quotient,remainder=divmod(quotient,2)
        result.append(remainder)
    return result[::-1]

def binary_range(n):
    max_index = n - 1
    max_lenght = len(binarycoder(max_index))
    return [[0]*(max_lenght - len(binarycoder(i)))+binarycoder(i) for i in range(n)]
binary_range(64)

def AB_test_Unit(n):
    math = __import__("math")
    return math.ceil(math.log2(n))
AB_test_Unit(64)

def ABtest_sequence(elements):
    result = []
    m = len(elements)
    unit = int(AB_test_Unit(m))
    binarycodes = np.array(binary_range(m))
    for i in range(unit):
        index_ = binarycodes[:,i]
        result.append(np.ravel(np.argwhere(index_ != 0)))
    return {"测试序号":np.array(result),"需要测试单位数量":unit,"二进制编码":binarycodes}


print(ABtest_sequence(list(range(65))))
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值