>>> 999999999 * math.log(999999999, 2) / 8 / 1024 ** 3

3.480509950621777

所以这个数字本身就差不多需要3.5GB内存,考虑到计算过程中需要存储临时结果,还需要翻个两三倍吧

而Python中的long可以到多少呢:

#define MAX_LONG_DIGITS \

((PY_SSIZE_T_MAX - offsetof(PyLongObject, ob_digit))/sizeof(digit))

offsetof算出来的是对象头大小,很小,digit是表示数字的每个“位”的字节数,其实就是这个数字存放的数组的元素大小,比如unsigned short,单纯看内存的话,可以大概到PY_SSIZE_T_MAX这个级别,这个数字是C的size_t的最大值除以二,若在64bit环境下,怎么看都够用了

但是呢,这个数字算出来你只需要内存和时间就好,但是打印出来就是另回事了,因为还要转为10进制,这时候光是算出来的字符串消耗的内存就是:

>>> 999999999 * math.log(999999999, 10) / 1024 ** 3

8.381903162752934

而且这个计算过程是非常慢的,数字转10进制需要O(N)次除法,每次O(N)。。。基本你是等不了的

当然,你也可以自己实现一个用10的幂的进制的形式存储的大数算法,不过用纯python搞这事,内存消耗也是很大的

===================

补充:实际上,就算只是计算一下这个算式,也是很慢的,你可以自己试一下在命令行敲入:

a = 999999999 ** 999999999

只计算不输出,理论上如果你机器有个16G内存也是能算完的,但是,你打开win的任务管理器或者linux的top就可以看到,内存涨的其实还是蛮慢的,虽然Python在计算long的乘方用了快速幂(这个式子只需要几十次乘法),以及大数相乘用的那个O(N^1.58)的分治算法,但是数字比较大的时候后者还是非常慢的

[xt@mac: ~ $] time python -c 'a = 9999; a ** a'

real0m0.037s

user0m0.015s

sys0m0.018s

[xt@mac: ~ $] time python -c 'a = 99999; a ** a'

real0m0.128s

user0m0.105s

sys0m0.019s

[xt@mac: ~ $] time python -c 'a = 999999; a ** a'

real0m4.704s

user0m4.671s

sys0m0.028s

[xt@mac: ~ $]

这个增长速度。。。大致你就认为没法算出来吧

python函数封装计算n运算_在Python里面怎么可以运算出999999999**999999999,求思路?...相关推荐

  1. 用python做科学计算的好处_使用Python做科学计算初探(转)

    今天在搞定Django框架的blog搭建后,尝试一下python的科学计算能力. python的科学计算有三剑客:numpy,scipy,matplotlib. numpy负责数值计算,矩阵操作等: ...

  2. 用python函数画德国国旗代码_用Python的turtle模块画国旗

    最近在学Python,发现Python的海龟绘图非常有趣,就分享一下!话不多说,先来Python turtle的官方文档链接: Python turtle.这里面有turtle的各类指令.turtle ...

  3. python函数封装计算n_python | 高效使用统计语言模型kenlm:新词发现、分词、智能纠错等...

    py-kenlm-model python | 高效使用统计语言模型kenlm:新词发现.分词.智能纠错等 之前看到苏神[重新写了之前的新词发现算法:更快更好的新词发现]中提到了kenlm,之前也自己 ...

  4. 用python函数画德国国旗代码_使用Python的turtle模块画国旗

    Python的turtle模块画国旗主要用到两个函数:draw_rentangle和draw_star. 至于函数的调用就和我们学的C,C++是一样的.对于turtle画国旗的程序中,首先是查找国旗的 ...

  5. python函数中self的作用_在Python中self的用途是什么?

    如果您使用的是Python,那么"自我"一词是无法逃避的.它用于方法定义和变量初始化中.每次定义方法时,都会显式使用self方法.在本文中,我们将按以下顺序深入了解Python的自 ...

  6. 用python函数画德国国旗代码_用Python绘制一面国旗

    import turtle as tu tu.hideturtle() #隐藏海龟 tu.speed(10) tu.title("Chinese National Flag.") ...

  7. 用python函数画德国国旗代码_用python画个五星红旗

    importturtle turtle.bgcolor("red") turtle.fillcolor("yellow") turtle.color('yell ...

  8. Python函数封装:利用正则表达式compile、findall对多组关键词进行模糊查询并返回统计个数,findall截取两个指定符号之间的内容

    Python函数封装:利用正则表达式compile.findall对多组关键词进行模糊查询并返回统计个数,findall截取两个指定符号之间的内容 目录 利用正则表达式compile.findall对 ...

  9. python函数封装图解_Python面向对象之封装

    前文导读 知识框架: 1.什么是封装 2.封装的优点与原则 3.私有变量和私有方法 4.封装的更多说明 什么是封装 封装是面向对象编程的一大特点,面向对象编程的第一步将属性和方法封装到一个抽象类中,外 ...

最新文章

  1. 5.1.1 什么是I/O设备?有几类I/O设备?
  2. HTTP/3 来了,你了解它么?
  3. 路由器笔记 CCNA
  4. TVP5150真正的驱动起来了
  5. numpy genfromtxt 读取字符_numpy组队学习1: 输入输出
  6. git向远程推送代码提示fatal: Authentication failed
  7. win10+乌班图双系统安装(详细)
  8. 网页鼠标指针样式(cursor属性)
  9. 服务器共享文件夹给广域网,广域网文件共享服务器
  10. 1038 统计同成绩学生
  11. 面试官:消息队列 MQ/ JMS/ Kafka 有什么区别?
  12. iPhone5 iOS6.1系统完美越狱教程
  13. 今天接到东南融通的面试电话,请问下个人一些具体情况
  14. OpenGL播放yuv数据流(着色器SHADER)-windows(一)
  15. 怎么手工解决DRA中的failure?
  16. 他来了!IDEA 2020.1 新版介绍!不过升级前请注意避坑!
  17. 北斗一号卫星导航系统与GPS的对比
  18. SD155非接触五维位移监测仪应用建筑物监测 大坝监测 滑坡监测 桥梁监测 地表监测 墙裂监测
  19. 中职计算机网页制作试题,计算机网页制作试题3
  20. 电容的X5R与X7R等参数

热门文章

  1. 少儿编程100讲轻松学python(二)-python cv2模块怎么安装
  2. jsp实现数据禁用和只读
  3. Java中的Redis的思维导图_Redis思维导图
  4. laravel 控制器中使用中间件_在 Laravel 中使用 Slack 进行异常通知
  5. elementUI之switch应用的坑
  6. JS中捉摸不透的==(宽松等于)
  7. DictVectorizer中的fit_transform
  8. Rabbitmq - 配置
  9. Jira filter subscribe issues
  10. 【laravel】【转发】laravel 导入导出excel文档