python做的大型游戏_Python实现数据量较大的生命游戏
我现在要用串行的方法实现一个生命游戏,这个生命游戏是在一个100000 x 100000的棋盘上,并且繁衍500代。我选择用list形成一个二维数组来装这个棋盘上的数据,可是程序运行到一半,报错说memory error,如果数据量小一点的话运行时没问题的。请问我应该怎么改进呢
# 棋盘的行列数
row = 100000
column = 100000
# 进化代数
count = 50
nCellSta = [[random.randint(0, 1) for i in range(column)] for j in range(row)]
nTempSta = [[0 for p in range(column)] for q in range(row)]
def CellCount(nRow, nColumn):
global row, column, nCellSta
nSum = 0
for i in range(nRow - 1, nRow + 2):
for j in range(nColumn - 1, nColumn + 2):
if i < 0 or i > row - 1 or j < 0 or j > column - 1 or i == nRow and j == nColumn:
continue
if nCellSta[i][j] == 1:
nSum += 1
if nSum == 0 or nSum == 1 or nSum == 4 or nSum == 5 or nSum == 6 or nSum == 7 or nSum == 8:
return 0
elif nSum == 2:
return nCellSta[nRow][nColumn]
elif nSum == 3:
return 1
# 输出列表nCellSta的值
def printValue():
nSum = 0
global row, column
for i in range(row):
for j in range(column):
# 打印效果
# print(nCellSta[i][j], ' ', end='')
nSum += nCellSta[i][j]
# print('\n')
return nSum
def main():
global count, nCellSta, nTempSta
printValue()
startTime = time.perf_counter()
for k in range(count - 1):
# print('新一轮游戏:\n')
for i in range(row):
for j in range(column):
nTempSta[i][j] = CellCount(i, j)
nCellSta = copy.deepcopy(nTempSta)
if not printValue():
print('全部死亡,进化结束')
break
endTime = time.perf_counter()
seconds = endTime - startTime
m, s = divmod(seconds, 60)
h, m = divmod(m, 60)
print('花费时间为:%d:%02d:%.3f' % (h, m, s))
python做的大型游戏_Python实现数据量较大的生命游戏相关推荐
- python not defined怎么解决_数据量太大?散点图装不下怎么办?用Python解决数据密度过大难题
当我们需要观察比较2个变量间的关系时,散点图是我们首选图表. 可当数据量非常大,数据点又比较集中在某个区间中,图表没法看,密密麻麻的怎么看? 怎么办?这时候就得看密度图了 什么是密度图? 所谓的密度图 ...
- 第9条:用生成器表达式来改写数据量较大的列表推导式
核心知识点: (1)当输入的数据量较大时,列表推导可能会因为占用太多内存而出问题. (2)由生成器表达式所返回的迭代器,可以逐次产生输出值,从而避免内存用量问题. (3)把某个生成器表达式所返回的迭代 ...
- for循环数据量太大_中文文本分类roberta大力出奇迹之数据量大的问题
问题描述: 笔者在文本分类场景中使用了roberta+pool+dense的三分类模型.采用预训练模型做项目的时候经常苦于数据太少,模型泛化性差,因此收集了1300W数据.在我尝试暴力出奇迹的时候,遇 ...
- ES 在数据量很大的情况下(数十亿级别)如何提高查询效率?
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | advanced-java 来源 | http ...
- bootstrap 树形表格渲染慢_bootstrap-table-treegrid数据量较大时渲染太久了
bootstrap-table-treegrid数据量较大时渲染太久了 森姐姐 2019-10-23 16:48:51 2260 收藏 2 分类专栏: 遇到的问题 最后发布:2019-10-23 16 ...
- es 查询语法_ES 在数据量很大的情况下(数十亿级别)如何提高查询效率啊?
点击上方☝SpringForAll社区 轻松关注! 及时获取有趣有料的技术文章 本文来源:http://8rr.co/GFLb 面试官心理分析 这个问题是肯定要问的,说白了,就是看你有没有实际干过 e ...
- ElasticSearch面试 - es 在数据量很大的情况下如何提高查询效率啊?
面试题 es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊? 面试官心理分析 这个问题是肯定要问的,说白了,就是看你有没有实际干过 es,因为啥?其实 es 性能并没有你想象中那么好的.很多时 ...
- ES 在数据量很大的情况下如何提高查询效率
如果面试的时候碰到这样一个面试题:ES 在数据量很大的情况下(数十亿级别)如何提高查询效率? 这个问题说白了,就是看你有没有实际用过 ES,因为啥?其实 ES 性能并没有你想象中那么好的. 很多时候数 ...
- rdd数据存内存 数据量_大数据开发-Spark调优常用手段
Spark调优 spark调优常见手段,在生产中常常会遇到各种各样的问题,有事前原因,有事中原因,也有不规范原因,spark调优总结下来可以从下面几个点来调优. 1. 分配更多的资源 分配更多的资源: ...
最新文章
- ShaderLab Syntax 基本语法
- Mac OS X上的Java安装位置在哪里?
- poj 2777(线段树+区间染色)
- 杠上了,Linus 再次怒喷 Intel 直言“去死”
- python gamma函数_python gamma矫正
- java limit_Java 8 Stream:limit()和skip()之间的区别
- SHELL脚本也要函数化
- cam350菜单怎么切换成中文_CAM350菜单中文详解
- android read_phone_state 代码,android - 用户10102和当前进程都没有android.permission.READ_PHONE_STATE - 堆栈内存溢出...
- 微信扫描下载apk解决方案
- win10触屏输入法_Win10触摸键盘怎么使用手写板功能输入?
- moment的常见用法总结
- 1.1 命题逻辑 笔记
- Mac | 替换系统自带的壁纸
- 直流无刷电机的好处与坏处
- sonarqube官方文档翻译之UserGuide
- 有一个班4个学生,5门课程。
- Java教程之多级缓存
- vue和js中如何实现模糊查询
- python static方法_浅谈python 类方法/静态方法
热门文章
- linux权限管理之用户和组管理
- python爬虫之路--准备环境
- 傅立叶变换、拉普拉斯变换、Z变换的联系?为什么要进行这些变换。研究的都是什么?
- .net中所用到的编码名称和对应的代码页(Encoding.GetEncoding) .
- 漫步微积分一 —— 引言
- 数据预处理之归一化/标准化/正则化/零均值化
- [深度学习-总结]Deep learning中8大模型介绍与比较(LeNet5,AlexNet,VGG,Inception,MobileNets,ResNet,DenseNet,Senet)
- [深度学习-实践]Tensorflow 2.x应用ResNet SeNet网络训练cifar10数据集的模型在测试集上准确率 86%-87%,含完整代码
- 隐马尔可夫模型的三个基本问题
- Java 8实现BASE64编解码