python函数封装计算n运算_在Python里面怎么可以运算出999999999**999999999,求思路?...
>>> 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,求思路?...相关推荐
- 用python做科学计算的好处_使用Python做科学计算初探(转)
今天在搞定Django框架的blog搭建后,尝试一下python的科学计算能力. python的科学计算有三剑客:numpy,scipy,matplotlib. numpy负责数值计算,矩阵操作等: ...
- 用python函数画德国国旗代码_用Python的turtle模块画国旗
最近在学Python,发现Python的海龟绘图非常有趣,就分享一下!话不多说,先来Python turtle的官方文档链接: Python turtle.这里面有turtle的各类指令.turtle ...
- python函数封装计算n_python | 高效使用统计语言模型kenlm:新词发现、分词、智能纠错等...
py-kenlm-model python | 高效使用统计语言模型kenlm:新词发现.分词.智能纠错等 之前看到苏神[重新写了之前的新词发现算法:更快更好的新词发现]中提到了kenlm,之前也自己 ...
- 用python函数画德国国旗代码_使用Python的turtle模块画国旗
Python的turtle模块画国旗主要用到两个函数:draw_rentangle和draw_star. 至于函数的调用就和我们学的C,C++是一样的.对于turtle画国旗的程序中,首先是查找国旗的 ...
- python函数中self的作用_在Python中self的用途是什么?
如果您使用的是Python,那么"自我"一词是无法逃避的.它用于方法定义和变量初始化中.每次定义方法时,都会显式使用self方法.在本文中,我们将按以下顺序深入了解Python的自 ...
- 用python函数画德国国旗代码_用Python绘制一面国旗
import turtle as tu tu.hideturtle() #隐藏海龟 tu.speed(10) tu.title("Chinese National Flag.") ...
- 用python函数画德国国旗代码_用python画个五星红旗
importturtle turtle.bgcolor("red") turtle.fillcolor("yellow") turtle.color('yell ...
- Python函数封装:利用正则表达式compile、findall对多组关键词进行模糊查询并返回统计个数,findall截取两个指定符号之间的内容
Python函数封装:利用正则表达式compile.findall对多组关键词进行模糊查询并返回统计个数,findall截取两个指定符号之间的内容 目录 利用正则表达式compile.findall对 ...
- python函数封装图解_Python面向对象之封装
前文导读 知识框架: 1.什么是封装 2.封装的优点与原则 3.私有变量和私有方法 4.封装的更多说明 什么是封装 封装是面向对象编程的一大特点,面向对象编程的第一步将属性和方法封装到一个抽象类中,外 ...
最新文章
- 5.1.1 什么是I/O设备?有几类I/O设备?
- HTTP/3 来了,你了解它么?
- 路由器笔记 CCNA
- TVP5150真正的驱动起来了
- numpy genfromtxt 读取字符_numpy组队学习1: 输入输出
- git向远程推送代码提示fatal: Authentication failed
- win10+乌班图双系统安装(详细)
- 网页鼠标指针样式(cursor属性)
- 服务器共享文件夹给广域网,广域网文件共享服务器
- 1038 统计同成绩学生
- 面试官:消息队列 MQ/ JMS/ Kafka 有什么区别?
- iPhone5 iOS6.1系统完美越狱教程
- 今天接到东南融通的面试电话,请问下个人一些具体情况
- OpenGL播放yuv数据流(着色器SHADER)-windows(一)
- 怎么手工解决DRA中的failure?
- 他来了!IDEA 2020.1 新版介绍!不过升级前请注意避坑!
- 北斗一号卫星导航系统与GPS的对比
- SD155非接触五维位移监测仪应用建筑物监测 大坝监测 滑坡监测 桥梁监测 地表监测 墙裂监测
- 中职计算机网页制作试题,计算机网页制作试题3
- 电容的X5R与X7R等参数
热门文章
- 少儿编程100讲轻松学python(二)-python cv2模块怎么安装
- jsp实现数据禁用和只读
- Java中的Redis的思维导图_Redis思维导图
- laravel 控制器中使用中间件_在 Laravel 中使用 Slack 进行异常通知
- elementUI之switch应用的坑
- JS中捉摸不透的==(宽松等于)
- DictVectorizer中的fit_transform
- Rabbitmq - 配置
- Jira filter subscribe issues
- 【laravel】【转发】laravel 导入导出excel文档