强化学习任务:获取首次连续5胜的场次编号及总胜场数
解决方案
要实现统计总胜场数并记录首次连续5次胜利的场次编号,你需要新增变量跟踪连续胜利次数,而不是用总胜场数判断。以下是修正后的代码逻辑:
关键变量说明
current_streak:实时跟踪当前连续胜利的场次,胜利时递增,失败时重置为0first_five_streak_game:存储首次达成连续5胜的场次编号,初始设为None避免重复记录
完整代码
from tqdm import tqdm total_games = 10000 success = 0 current_streak = 0 first_five_streak_game = None # 标记未找到首次连续5胜的场次 for game in tqdm(range(total_games)): # 替换为你的冰冻湖环境游戏逻辑,执行后得到reward(胜利返回1,失败返回0) # //BODY OF CYCLE reward = 1 # 示例值,实际由环境输出 # 统计总胜场数(保留原逻辑) success += reward # 更新连续胜利次数 if reward == 1: current_streak += 1 else: current_streak = 0 # 记录首次达成连续5胜的场次 if current_streak == 5 and first_five_streak_game is None: # 场次编号若从1开始计数则用game +1,从0开始直接用game first_five_streak_game = game + 1 # 输出结果 print(f"总胜场数: {success}") if first_five_streak_game: print(f"首次连续5次胜利的场次编号: {first_five_streak_game}") else: print("10000场游戏内未达成连续5次胜利")
逻辑说明
- 每次游戏结束后,根据
reward更新总胜场success - 同步更新
current_streak:胜利则加1,失败则重置为0,确保只统计连续胜利次数 - 当
current_streak达到5且first_five_streak_game未被赋值时,记录当前场次编号,保证只保存第一次达成的结果
内容的提问来源于stack exchange,提问作者0xYanis
相关产品推荐
相关产品推荐

