为了账号安全,请及时绑定邮箱和手机立即绑定

为什么下面的python代码会抛出内存错误?

为什么下面的python代码会抛出内存错误?

MM们 2021-09-24 15:38:57
这是代码:import itertoolsnum_cases = int(input())answer_list = []while num_cases>0:    live_ans = []    question_list = []    nums = int(input())    d1 = int(input())    d2 = int(input())    sample_space= {d1, d2}    temp = []    no_cases = 2**(nums-1)    combs = itertools.product(sample_space, repeat = nums-1)    for i in combs:        temp.append(i)    for i in temp:        if sum(i) not in live_ans:            live_ans.append(sum(i))        else:            pass    live_ans.sort()    answer_list.append(live_ans)    num_cases -= 1for i in answer_list:    finalans = " ".join(map(str, i))    print(finalans)对于小输入,如:1312该程序运行良好。至于相对较大的输入,如:1586924它给出了一个内存错误。我没有为此引用任何原因,因为代码看起来根本不消耗内存。不是吗?
查看完整描述

2 回答

?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

看看你的以下几行:


no_cases = 2**(nums-1)

combs = itertools.product(sample_space, repeat = nums-1)

for i in combs:

    temp.append(i)

2**58 = 2.8823038e+17

你计算一下为什么从这里得到内存错误


查看完整回答
反对 回复 2021-09-24
  • 2 回答
  • 0 关注
  • 196 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号