A/B 测试的分流算法

FreeGuideOnline 最新 2026-07-11

python import hashlib

def get_bucket(user_id, seed, total_buckets=10000): hash_input = f"{user_id}_{seed}".encode('utf-8') hash_val = hashlib.md5(hash_input).hexdigest() # 取哈希值的前8位十六进制,转换为整数 int_val = int(hash_val[:8], 16) return int_val % total_buckets

def assign_group(user_id, experiment_config): bucket = get_bucket(user_id, experiment_config.seed) if bucket < experiment_config.buckets_A_end: return "A" else: return "B"