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

如何调整循环结构使变量A返回长度为t的求和结果数组

代码修改方案

修复后的可运行代码如下:

import numpy as np

An=np.array([51,101,201,301,501])
t=100
MM=9
Mi=1    
rep=5
for agentcount in np.arange(0,5): #count over agents
    N=An[agentcount]
    for M in np.arange(Mi,MM+1):
        for crep in range(1,rep+1):
            win=(np.random.rand(M,1)>0.5).astype(int) #winning record
            s1=(np.random.rand(2**M,N)>0.5).astype(int) #random strat
            s2=(np.random.rand((2**M),N)>0.5).astype(int) #alternative strat
            payout=np.zeros([2,N]) #empty payout record
            # 提前初始化形状为1×t的A数组
            A = np.zeros((1, t))
            for ct in range(1,t+1): #timesteps
                cc=np.abs((1+ np.dot((2**(np.arange(0,M))),win))) #pick next strat
                nex1=s1[cc-1,:]
                nex2=s2[cc-1,:]
                # 修正原无效判断逻辑,对比两个策略收益选更优
                if payout[0].mean() > payout[1].mean():
                    Next = nex1
                else:
                    Next = nex2
                # 把当前迭代结果存入A的对应位置,ct从1开始对应数组索引0
                A[0, ct-1] = np.sum(Next)/N
                # 可在此处补充payout收益更新逻辑,匹配你的业务需求
                # payout[0] += s1对应收益计算逻辑
                # payout[1] += s2对应收益计算逻辑

核心修改说明:

  • 预先开辟存储空间:在ct循环执行前初始化全零的1×t数组A,避免每次迭代直接覆盖变量导致历史值丢失
  • 修正语法逻辑错误:修复原代码多处缩进错误、payout[0,cn-1]>payout[0,cn-1]的无效自身比较问题,删除存在索引越界风险的冗余cn循环
  • 结果按位存储:每次ct迭代完成后,将计算得到的平均值写入A数组的对应索引位置,跑完t次循环后即可得到符合要求的1×t结果数组
  • 如果你需要保留所有agent、M、重复实验的结果,可把A的初始化维度调整为(len(An), MM-Mi+1, rep, 1, t),按嵌套层级对应索引赋值即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:45:04