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

如何关联概率权重与变量?实现选后提升概率的简易AI

解决方案

核心问题是颜色与权重变量分离,导致无法高效关联选择结果与概率调整。用字典存储颜色与对应权重,就能直接通过选择的颜色修改权重,彻底替代繁琐的if语句。

优化后的代码示例

import random

# 用字典存储颜色与初始权重,键值对直接关联
color_weights = {
    "red": 100,
    "blue": 100,
    "yellow": 100,
    "green": 100,
    "orange": 100,
    "purple": 100
}

while True:
    # 从字典中提取颜色列表和对应的权重列表
    color_list = list(color_weights.keys())
    weights_list = list(color_weights.values())
    
    # 生成3个不重复的颜色选项(若允许重复可去掉去重逻辑)
    selected_colors = random.choices(color_list, weights=weights_list, k=3)
    # 去重确保用户得到三个不同选择
    selected_colors = list(dict.fromkeys(selected_colors))
    while len(selected_colors) < 3:
        new_color = random.choice(color_list)
        if new_color not in selected_colors:
            selected_colors.append(new_color)
    
    # 展示选项给用户
    print("请选择一个颜色:")
    for idx, color in enumerate(selected_colors, 1):
        print(f"{idx}. {color}")
    
    # 获取并验证用户输入
    while True:
        try:
            user_input = int(input("输入选项编号:"))
            if 1 <= user_input <= 3:
                user_choice = selected_colors[user_input - 1]
                break
            else:
                print("请输入1-3之间的编号!")
        except ValueError:
            print("请输入有效的数字!")
    
    # 提升选中颜色的权重(数值可根据需求调整)
    color_weights[user_choice] += 50
    print(f"已提升{user_choice}的出现概率,当前权重:{color_weights[user_choice]}\n")

关键优化点说明

  • 字典关联颜色与权重:无需单独维护p_red、p_blue等变量,直接通过color_weights[颜色名]读取或修改权重,扩展性极强——新增颜色只需在字典中加一行键值对,不用修改其他逻辑。
  • 自动提取参数:list(color_weights.keys())和list(color_weights.values())自动生成random.choices所需的参数,避免手动同步颜色和权重顺序。
  • 输入验证:确保用户输入有效选项,避免程序崩溃。
  • 去重逻辑:保证用户每次得到三个不同的颜色选项(若不需要去重,可删除相关代码)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 21:15:44