标签: nth-root

如何计算一个非常大的整数的第n个根

我需要一种方法来计算Python中长整数的第n个根.

我试过了pow(m, 1.0/n),但它不起作用:

OverflowError:long int太大而无法转换为float

有任何想法吗?

通过长整数,我的意思是真正的长整数,如:

11968003966030964356885611480383408833172346450467339251 196093144141045683463085291115677488411620264826942334897996389 485046262847265769280883237649461122479734279424416861834396522 819159219215308460065265520143082728303864638821979329804885526 557893649662037092457130509980883789368448042961108430809620626 059287437887495827369474189818588006905358793385574832590121472 680866521970802708379837148646191567765584039175249171110593159 305029014037881475265618958103073425958633163441030267478942720 703134493880117805010891574606323700178176718412858948243785754 898788359757528163558061136758276299059029113119763557411729353 915848889261125855717014320045292143759177464380434854573300054 940683350937992500211758727939459249163046465047204851616590276 724564411037216844005877918224201569391107769029955591465502737961776799311859881060956465198859727495735498887960494256488224 613682478900505821893815926193600121890632

python math nth-root

28
推荐指数
4
解决办法
3万
查看次数

第n个根实现

我正在研究计算数字的第n 根的方法.但是,我遇到了负数的 n 根问题.

大多数人都说要使用Math.pow(num, 1 / root),但这对负数不起作用.

我试过这个:

public static double root(double num, double root) {
    if (num < 0) {
        return -Math.pow(Math.abs(num), (1 / root));
    }
    return Math.pow(num, 1.0 / root);
}
Run Code Online (Sandbox Code Playgroud)

但是,它不适用于所有数字,因为根可以是小数.例如root(-26, 0.8)返回-58.71,但这是无效输入.即使是根也会给出错误的答案.例如root(-2, 2)返回-1.41421,但-2没有平方根.

java math nth-root

20
推荐指数
2
解决办法
6万
查看次数

整数第n个根

如果x'是最大整数,则x'是y的第n个根,使得x ^ n <= y.x,x'和y都是整数.有没有有效的方法来计算这样的第n个根?我知道这通常是由第n个根算法完成的,但这里的难点是一切都是整数,因为我正在使用嵌入式系统.

顺便说一句,我甚至尝试从1到y进行二进制搜索以识别最大x,使得x ^ n <= y,但由于x ^ n容易溢出,尤其是当n很大时,它不起作用.

algorithm math nth-root

6
推荐指数
1
解决办法
2304
查看次数

如何检查数字是否可以代表主要权力(第n个根是否为素数)

我正在尝试这个问题一段时间但一次又一次地得到错误的答案.数字可能非常大<= 2 ^ 2014. 22086. Prime Power Test

关于我的算法的说明:

  1. 对于给定的数字,我正在检查该数字是否可以表示为主要权力的形式.
  2. 因此,检查主要功率的最大限制是log n base 2.
  3. 最后问题减少到找到一个数字的第n个根,如果它是素数,我们有我们的答案,否则检查所有i直到log (n base 2)exit.
  4. 我已经使用了各种优化并测试了大量的测试用例,并且我的所有算法都给出了正确的答案
  5. 但是法官说错了答案.
  6. Spoj有另一个类似的问题,小约束n <= 10 ^ 18,我已经接受了Python和C++(c ++中的最佳解算器)

这是我的python代码请建议我,如果我做错了我不是很精通python所以我的算法有点冗长.提前致谢.

我的算法:

import math
import sys
import fractions
import random
import decimal
write = sys.stdout.write
def sieve(n):
    sqrtn = int(n**0.5)
    sieve = [True] * (n+1)
    sieve[0] = False
    sieve[1] = False
    for i in range(2, sqrtn+1):
        if sieve[i]:
            m = n//i - i
            sieve[i*i:n+1:i] = [False] * (m+1) …
Run Code Online (Sandbox Code Playgroud)

python algorithm primes number-theory nth-root

5
推荐指数
1
解决办法
1718
查看次数

如何在R中使用nthroot函数

我正在尝试使用包nthroot中的功能pracma。但是,每当我运行它时,我都会收到错误:

nthroot(x, 5) 中的错误:找不到函数“nthroot”

我尝试安装该pracma软件包,但这也没有帮助。谁能给我任何关于为什么这不起作用的想法?

r nth-root

5
推荐指数
2
解决办法
9838
查看次数

第n个根算法

计算数字的第n个根的最快方法是什么?

我知道Try and Fail方法,但我需要更快的算法.

c# algorithm math nth-root

4
推荐指数
1
解决办法
4924
查看次数

(12)的第四个根或Python 3中的任何其他数字

我正在尝试为12到4(12**4)的功率制作一个简单的代码.我有输出数(20736),但是当我想要返回(20736)到它的原始值(12).我不知道如何在Python中做到这一点..在真实的数学中我用数学短语做到了{12؇}

问题是如何在Python中制作{12؇}?我使用的是sqrt(),但sqrt仅用于功率2

  #!/usr/bin/env python3.3
import math 
def pwo():
   f=12 ** 4 #f =20736 #
   c=        # should  c = 12 #
   return f,c
print pwo()
Run Code Online (Sandbox Code Playgroud)

python math python-3.x nth-root

4
推荐指数
2
解决办法
1万
查看次数

精确的第n根

我正在寻找Python Nth根函数/算法,但在发布之前:NO INTEGER ROOT,HELL!
我在哪里可以获得至少一个如何编程产生精确float/的第N个根函数Decimal的指南?
这样的函数不返回1也不0root(125, 1756482845)(第一个参数是数字,第二个是根深度(或东西)).

编辑:所以,你给了我这个解决方案:n ** (1.0 / exp)我在问这个问题时就知道了,但是它不适用于,例如,exp = 3.你无法1/3用有理数表达,所以125 ** (1/3)给出了不正确的结果4.999999....我要求一些"智能"算法,它给出了这么好的数字的正确结果,并且至少有4个小数点 - 准确的结果exp.如果没有这样的功能或算法,我将使用this(n ** (1/exp)).

python algorithm floating-point precision nth-root

4
推荐指数
1
解决办法
4180
查看次数

求n次方根

在 Rust 中求任意数字的 n 次方根的最佳方法是什么?例如,num crate 只允许取整数类型的第 n 个主根,即下限或上限值...如何最接近实际值?

rust nth-root

2
推荐指数
1
解决办法
1097
查看次数