You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C++中生成均匀随机8位二进制数并计算两两汉明距离

嘿,我明白你的需求了——要自动生成100个8位随机二进制字符串,然后算出它们两两之间的汉明距离,之前找的方案要么不能自动生成,要么需要手动输入,确实挺麻烦的。下面给你一个用Python实现的完整方案,全程不需要你手动输入任何二进制数,直接运行就能得到结果!

完整实现方案

1. 自动生成随机8位二进制字符串

我们先写一个函数,批量生成指定数量和位数的随机二进制字符串。这里用Python的random模块来随机挑选'0'或'1',拼接成8位的字符串。

import random
from itertools import combinations

def generate_random_binary_strings(count, bit_length):
    """生成指定数量、指定位数的随机二进制字符串"""
    binary_strings = []
    for _ in range(count):
        # 循环bit_length次,每次随机选'0'或'1',再拼接成字符串
        binary_str = ''.join(random.choice(['0', '1']) for _ in range(bit_length))
        binary_strings.append(binary_str)
    return binary_strings

# 生成100个8位二进制字符串
binary_list = generate_random_binary_strings(100, 8)

# 可选:打印前5个生成的字符串,验证效果
print("生成的前5个8位二进制字符串:")
for bs in binary_list[:5]:
    print(bs)

2. 计算两个二进制字符串的汉明距离

汉明距离的核心就是统计两个字符串对应位置上不同字符的数量。我们写一个专门的函数来处理这个逻辑,同时加入长度检查,避免传入不同长度的字符串出错。

def calculate_hamming_distance(str1, str2):
    """计算两个等长二进制字符串的汉明距离"""
    if len(str1) != len(str2):
        raise ValueError("两个二进制字符串的长度必须一致!")
    # 遍历每个字符对,统计不同的数量
    return sum(char1 != char2 for char1, char2 in zip(str1, str2))

3. 计算所有两两组合的汉明距离

用itertools.combinations可以获取所有不重复的两两组合(比如只算A和B,不会重复算B和A),然后逐个计算它们的汉明距离,最后可以把结果打印出来或者保存到文件。

# 计算所有两两组合的汉明距离
all_hamming_distances = []
for pair in combinations(binary_list, 2):
    dist = calculate_hamming_distance(pair[0], pair[1])
    all_hamming_distances.append((pair[0], pair[1], dist))

# 打印前10组结果示例
print("\n前10组两两汉明距离结果:")
for idx, (str1, str2, dist) in enumerate(all_hamming_distances[:10], 1):
    print(f"第{idx}组:{str1} 和 {str2} → 汉明距离:{dist}")

# 可选:将所有结果保存到本地文件,方便查看
with open("hamming_distance_results.txt", "w", encoding="utf-8") as f:
    f.write("二进制字符串1\t二进制字符串2\t汉明距离\n")
    for str1, str2, dist in all_hamming_distances:
        f.write(f"{str1}\t{str2}\t{dist}\n")
print("\n所有结果已保存到 hamming_distance_results.txt 文件中")

运行说明

  1. 确保你已经安装了Python(版本3.6+即可)
  2. 把上面的代码复制到一个.py文件里,比如hamming_calculator.py
  3. 直接运行这个文件,程序会自动生成100个8位二进制字符串,计算所有两两汉明距离,最后打印部分结果并保存完整结果到文件里

这个方案完全满足你的需求:自动生成二进制字符串,不需要手动输入,同时准确计算两两汉明距离,结果也方便查看和保存。

内容的提问来源于stack exchange,提问作者baran.jl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:28:43