为什么在python中整数的值没有限制_python-为什么math.log接受大整数值?

我终于钻入python math lib source code,发现了这一点:

/* A decent logarithm is easy to compute even for huge ints, but libm can't

do that by itself -- loghelper can. func is log or log10, and name is

"log" or "log10". Note that overflow of the result isn't possible: an int

can contain no more than INT_MAX * SHIFT bits, so has value certainly less

than 2**(2**64 * 2**16) == 2**2**80, and log2 of that is 2**80, which is

small enough to fit in an IEEE single. log and log10 are even smaller.

However, intermediate overflow is possible for an int if the number of bits

in that int is larger than PY_SSIZE_T_MAX. */

static PyObject*

loghelper(PyObject* arg, double (*func)(double), const char *funcname)

{

/* If it is int, do it ourselves. */

if (PyLong_Check(arg)) {

double x, result;

Py_ssize_t e;

...

我会保留其余的源代码(检查链接),但是据我了解,Python会检查传递的参数是否为整数,如果是,则不要使用math lib(如果为int,自己做.)评论.另外:即使对于很大的整数,也很容易计算出不错的对数,但是libm本身不能做到这一点-loghelper可以

如果是双精度数,则调用本地数学库.

从源注释中可以看出,即使发生溢出,Python也会尽最大努力提供结果(此处转换为两次溢出,但仍可以计算日志.清除异常并继续)

因此,由于使用了log函数的python包装,Python能够计算巨大整数的对数(特定于某些函数,因为sqrt等其他函数无法做到),并且已在文档中进行了记载,但仅在源代码中有记录.正如Jon所暗示的那样,使其成为实现细节.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489096.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

汽车芯片科普

来源:湖杉资本智能驾驶涉及人机交互、视觉处理、智能决策等,核心是 AI 算法和芯片。伴随汽车电子化提速,汽车半导体加速成长,2017 年全球市场规模 288 亿美元(26%),远高于整车销量增速&#xff…

python程序打包时出现lib not found_pyinstaller打包py脚本Warning:lib not found等相关问题...

小爬从使用Pyinstaller打包py为exe文件以来,一直都会碰到Warning:lib not found等相关问题,诸如:虽然大多数时候,您像我一样忽略这些warning,打包后的exe也能运行。网上有一堆的方法,有建议装wi…

hanoi塔java_Java实现hanoi塔

学习数据结构绕不过会遇到汉诺塔的问题,这个也比较经典,问题我也不详细描述了。简单来说三根木桩,初始状态下一根木桩上叠放着n个盘子,大盘在下小盘在上,任你操作,把这些盘子移动到第三根木桩,当…

信息太多,时间太少: 大脑如何区分重要和不重要的事?

来源:脑与心智毕生发展研究中心CLIMB我们总是会错过一些想看到、听到或感觉到的东西——尤其是当有大量信息争夺我们的注意时。是什么吸引了我们的注意?记住重要的事情需要多长时间?神经科学家(研究大脑和行为的科学家)发现,大脑的…

Java缓存框架使用EhCache结合Spring AOP

Java缓存框架使用EhCache结合Spring AOP 一.Ehcache简介 EhCache是一个纯Java的进程内缓存框架,具有如下特点: 1. 快速简单,非常容易和应用集成。 2.支持多种缓存策略 。 3. 缓存数据有两级:内存和磁盘,因…

python vba 秒出结果_为什么公司每天用20个人手工处理数据出报告,也不用5个会vba,python的人来制作??...

逼呼上无数人反复在说:先问是不是,再问为什么!不是没有道理啊!!!可能题主所在单位是这种情况,你看到处理数据出报告的人都不会VBA,也不会python,但是并不是所有单位都这样…

java 并发 set_高并发下的Java数据结构(List、Set、Map、Queue)

1.并发ListVector 或者 CopyOnWriteArrayList 是两个线程安全的List实现,ArrayList 不是线程安全的。因此,应该尽量避免在多线程环境中使用ArrayList。如果因为某些原因必须使用的,则需要使用Collections.synchronizedList(List list)进行包装…

知识图谱和图分析与可视化

来源:知链数据“知识图谱和图分析与可视化”这个题目看起来比较大,我尝试基于本人的一些图数据可视化与分析经验,对知识图谱和图分析与可视化之间的关系进行简单梳理,并分享一些以知识图谱为代表的图数据与图可视化、图分析结合进…

python 生成器装饰器_4.python迭代器生成器装饰器

基本概念1.容器(container)容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用in, not in关键字判断元素是否包含在容器中。通常这类数据结构把所有的元素存储在内存中(也有一些特例,并不是所有的元素都放在内…

java开源对象池_JAVA 对象池

GenericObjectPool利用一个org.apache.commons.collections.CursorableLinkedList对象来保存对象池里的对象。这种对象池的特色是:可以设定最多能从池中借出多少个对象。可以设定池中最多能保存多少个对象。可以设定在池中已无对象可借的情况下,调用它的…

新一代人工智能专利分析

来源:三思派人工智能(Artificial Intelligence,AI)自诞生以来,已经过约60年的发展。2006年深度学习算法的重大突破带来了人工智能的第三次爆发。同时也引发专利申请的激增,2006年至2016年,十年的…

MYSQL性能优化详解(二)

接着上一篇学习:http://www.cnblogs.com/quanzhiguo/p/6401453.html 七、MySQL数据库Schema设计的性能优化 高效的模型设计 适度冗余-让Query尽两减少Join 大字段垂直分拆-summary表优化 大表水平分拆-基于类型的分拆优化 统计表-准实时优化 合适的数据类型 时间存储…

python if else用法同一行_在Python的同一行中使用if else for和del吗?-问答-阿里云开发者社区-阿里云...

我有一个列表,其项目是可变长度的列表。如果这些可变长度的列表项超过此长度,则需要将其截断为特定长度(x)。我做了这个小的功能。def truncateList(batch_, trim_len):truncated_list []for eachAbstract in train_abstracts_encoded:if len(eachAbstr…

java no resultset_jdbc - Java ResultSet如何检查是否有任何结果

jdbc - Java ResultSet如何检查是否有任何结果结果集没有hasNext的方法。 我想检查resultSet是否有任何值这是正确的方法if (!resultSet.next() ) {System.out.println("no data");}kal asked 2019-02-19T19:16:57Z21个解决方案472 votes假设您正在使用新返回的Resul…

图解谷歌大脑丶城市大脑丶全球脑与互联网大脑的关系

人类很早就朦胧的发现社会组织具有神经系统的特征。19世纪到20世纪,一些前瞻的哲学家们开始不断将科技与脑进行了关联,提出了"器官映射","社会神经网络","全球脑"。 21世纪之后,更多科技大脑概念不断涌现,从互联网大脑到城市大脑,从谷…

Ubuntu 安装调整工具移动 Launcher 启动器位置

问题:如何将 Ubuntu 16.04 屏幕左侧的 Launcher 启动器由屏幕底部移动到屏幕左侧。 Ubuntu 16.04 最新的 unity-tweak-tool 工具,已经为用户提供了通过图形界面,实现上述 Launcher 启动器位置移动的功能。 1、在终端中执行: sudo …

python求助神器_python三大神器

Python 中有很多优秀的包,本文主要讲一下 pip, virtualenv, fabric1. pip 用来包管理1 #安装,可指定版本号2 (sudo) pip install Django1.6.834 #升级5 (sudo) pip install bpython --upgrade67 #一次安装多个8 (sudo) pip install BeautifulSoup4 fabri…

滴滴自动驾驶CEO张博:十年内无人驾驶对消费者没有吸引力丨厚势汽车

来源:WAVE2019张博:在 2012 年滴滴创立的时候,我们是一个非常简单的想法。我们发现在打出租车的场景下,无论是司机还是乘客效率都非常低。在滴滴出现之前,一个乘客想要打出租车必须要下楼招一下手,这个信号…

garch预测 python_数据科学方面的Python库,实用!

作者:Python开发与大数据人工智能原文:公众号 Python开发与大数据人工智能Python是一种很棒的编程语言。事实上,它还是世界上发展最快的编程语言之一。它一次又一次证明了它在数据科学职位中的实用性。整个Python及其库的生态系统使其成为全世…

纯js实现html转pdf

项目开发中遇到了一个变态需求,需要把一整个页面导出为pdf格式,而且要保留页面上的所有的表格、svg图片和样式。 简而言之,就是希望像截图一样,把整个页面截下来,然后保存成pdf。 咋不上天呢…… 查了一下,…