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

Python 3.11恶意软件模拟函数求助:无法生成预期输出

修正恶意软件行为模拟代码的问题

你的代码核心问题是Tl和Tr的偏移计算错误,不符合题目中给定的窗口模式Tl, -, -, X, -, -, -, Tr,导致判断逻辑偏离规则。

问题分析

根据窗口结构:

  • Tl位于X的左侧第3个位置(中间间隔2个元素),即若X的索引为i,则Tl的索引是i - 3
  • Tr位于X的右侧第4个位置(中间间隔3个元素),即Tr的索引是i + 4

而你的代码错误使用了i-2作为Tl的偏移、i+3作为Tr的偏移,同时边界判断也对应出错,导致部分位置的判断逻辑失效。

修正后的代码

def simulate(entries):
    result = entries.copy()

    for i in range(len(entries)):
        X = entries[i]
        # 检查左侧的Tl:i-3 >=0 时存在
        if i >= 3:
            Tl = entries[i - 3]
            if Tl >= X:
                result[i] = 0
        # 检查右侧的Tr:i+4 < len(entries) 时存在
        if i <= len(entries) - 5:
            Tr = entries[i + 4]
            if Tr >= X:
                result[i] = 0

    return result

# 测试用例
records = [1, 2, 0, 5, 0, 2, 4, 3, 3, 3]
result = simulate(records)
print(result)
# 输出: [1, 0, 0, 5, 0, 0, 0, 3, 3, 0]

修正说明

  1. 偏移修正:将Tl的偏移从i-2改为i-3,Tr的偏移从i+3改为i+4,完全匹配题目中的窗口位置关系
  2. 边界修正:
    • Tl的存在条件改为i >=3(确保i-3不小于0)
    • Tr的存在条件改为i <= len(entries)-5(确保i+4不超过数组最大索引)
  3. 保留原始数组判断逻辑:所有比较都基于未修改的entries,符合题目中"先确定所有需设0的位置,再统一替换"的规则

运行修正后的代码,即可得到预期输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 17:03:18