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

Nine Heads and Tails游戏:0-511数值转3x3 H/T硬币矩阵程序实现求助

九硬币(Nine Heads and Tails)矩阵转换实现方案

核心实现思路

  • 输入校验:接收用户输入后先判断是否为整数,且取值范围落在[0,511]区间,不符合要求的输入给出错误提示
  • 十进制转定长二进制:将合法的输入数值转换为9位长度的二进制字符串,不足9位的在高位补0,比如数值7会被转换为000000111
  • 字符映射:遍历二进制字符串的每一位,按照规则替换:0替换为H(正面),1替换为T(反面)
  • 矩阵格式化输出:将长度为9的字符序列按每3位一组拆分,每组单独输出一行,即可得到3x3的硬币矩阵

完整Python实现代码

# 输入合法性校验
while True:
    try:
        input_num = int(input("请输入0-511之间的数字: "))
        if 0 <= input_num <= 511:
            break
        print("输入不合法,请输入0到511之间的整数")
    except ValueError:
        print("输入不合法,请输入有效整数")

# 转换为9位补零的二进制字符串
binary_str = f"{input_num:09b}"
# 二进制位映射为H/T字符
result_chars = ['H' if bit == '0' else 'T' for bit in binary_str]
# 按3行输出矩阵
for row_idx in range(3):
    print(''.join(result_chars[row_idx*3 : (row_idx+1)*3]))

效果验证

按照需求示例输入7时,二进制串为000000111,映射后得到字符序列HHHHHHTTT,拆分后输出结果如下,完全符合要求:

HHH
HHH
TTT

补充说明

如果后续需要调整硬币位置和比特位的对应规则,只需要修改二进制串的遍历/切片逻辑即可:比如如果需要低位对应矩阵左上角,只需要把转换后的二进制串反转后再做映射即可。


内容的提问来源于stack exchange,提问作者Michael Aguirre

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 10:42:04