问题标签 [logarithm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - BigInteger 的对数
我有一个BigInteger
数字,例如超过 2 64。现在我想计算该数字的对BigInteger
数,但该方法BigInteger.log()
不存在。如何计算我的大BigInteger
值的(自然)对数?
r - 在R中标记对数刻度显示
在绘制直方图、散点图和其他在 R 中将轴缩放为对数刻度的图时,如何使用 10^-1 10^0 10^1 10^2 10^3 等标签而不是显示的轴只是 -1, 0, 1, 2, 3 等。应该在 hist()、plot() 等命令中添加哪些参数?
r - 在 R 中的 x 轴上显示次要对数刻度
我有一个正态分布图和一个直方图,其中 x 轴以对数刻度显示 0、10^0、10^1 ...我想在主要刻度之间包含次要刻度。实际上,我能够使用上一个问题中给我的解决方案将主要刻度格式从 1、2、3 等更改为 10^0、10^1、10^2、10^3 。我对主要刻度使用了以下代码:
可以将其编辑为仅标记次要刻度而不标记它们吗?
c++ - 计算 lg(N!):有人有更好的递归方法吗?
我认为帖子的标题解决了我的问题。但重申一下,我想知道是否有人有更好的方法来解决这个问题。
根据人们的反应,我应该澄清一下,这是书上的问题,书上说要递归地做。我正在练习编程问题,并尝试从其他人那里获得反馈,以便在我努力成为更好的程序员的过程中发现自己的错误。
python - 如何标准化直方图
我有这个直方图,它在等对数间隔的 bin 中计算数组“d”。
问题是我希望它被规范化,以便区域为一。使用选项 Normed=True 我没有得到结果,这可能是因为我使用的是对数箱。因此,我尝试以这种方式对直方图进行归一化:
但后来我不知道如何绘制 H_norm 与垃圾箱
javascript - 创建带有对数 Y 轴的图表
我在 Y 轴上使用算术(恒定比例)创建了各种图表。现在我想用对数 Y 轴创建一个。
例如:1 和 2 之间的距离应与 2 和 4 相同
关于缩放方法的任何想法
谢谢
php - 给定纬度和经度,如何对附近最近的位置进行分组?
想象我有很多地方,每个项目都包括那个地方的名称、纬度和经度。例如,现在我想使用以英里为单位的半径对附近的项目进行分组。
我如何在 PHP 中实现这一点?
algorithm - log函数的复杂度是多少?
log base 10函数的复杂度是多少?
algorithm - `2^n - 1` 的类似 De Bruijn 的序列:它是如何构造的?
我正在查看条目Find the log base 2 of an N-bit integer in O(lg(N)) operations with multiply and lookup from Bit Twiddling hacks。
我可以很容易地看到该条目中的第二个算法是如何工作的
它计算n = log2 v
wherev
是已知的 2 的幂。在这种情况下0x077CB531
是一个普通的 De Bruijn 序列,其余的很明显。
但是,该条目中的第一个算法
对我来说看起来有点棘手。我们首先捕捉v
到最近的较大2^n - 1
值。然后将该2^n - 1
值乘以0x07C4ACDD
,在这种情况下,其作用方式与之前算法中的 DeBruijn 序列相同。
我的问题是:我们如何构建这个神奇的0x07C4ACDD
序列?即我们如何构造一个序列,当乘以一个2^n - 1
值时,该序列可用于生成唯一索引?对于2^n
乘数,它只是一个普通的 De Bruijn 序列,正如我们在上面看到的,所以很清楚0x077CB531
来自哪里。但是2^n - 1
乘数0x07C4ACDD
呢?我觉得我在这里遗漏了一些明显的东西。
PS为了澄清我的问题:我并不是真的在寻找一种算法来生成这些序列。我对一些或多或少的微不足道的属性(如果存在的话)更感兴趣,它可以0x07C4ACDD
按照我们希望的方式工作。对于0x077CB531
使它起作用的属性非常明显:它包含所有 5 位组合“存储”在具有 1 位步进的序列中(这基本上是 De Bruijn 序列)。
0x07C4ACDD
另一方面, 本身不是 De Bruijn 序列。那么,他们在构建时的目标是什么0x07C4ACDD
(除了非建设性的“它应该使上述算法工作”)?有人确实以某种方式提出了上述算法。所以他们可能知道这种方法是可行的,并且存在适当的顺序。他们是怎么知道的?
例如,如果我要为任意构造算法v
,我会做
第一的。然后我会++v
变成v
2 的幂(假设它不会溢出)。然后我会应用第一个算法。最后我会做--r
以获得最终答案。然而,这些人设法对其进行了优化:他们仅通过更改乘数和重新排列表格就消除了前导步++v
和尾随步。--r
他们怎么知道这是可能的?这种优化背后的数学原理是什么?
python - Python中求和对数的数值函数
给定log(a)
and log(b)
,我想计算log(a+b)
(以数值稳定的方式)。
我为此写了一个小函数:
我写了一个程序,这是迄今为止最耗时的一段代码。显然我可以尝试优化它(例如,消除递归调用)。
你知道从和计算的标准math
或函数吗?numpy
log(a+b)
log(a)
log(b)
如果没有,您是否知道为该函数制作单个 C++ 挂钩的简单方法?这不是一个复杂的函数(它使用浮点数),正如我所说,它占用了我运行时的大部分时间。
在此先感谢数值方法忍者!