如何求整数n次根?

2023-12-22

我想找到小于或等于n的k次方根的最大整数。我试过

int(n**(1/k))

但对于 n=125,k=3,这给出了错误的答案!我碰巧知道 5 的立方是 125。

>>> int(125**(1/3))
4

有什么更好的算法?

背景:2011 年,这个失误让我在 Google Code Jam 问题上失败了昂贵的晚餐 https://codingcompetitions.withgoogle.com/codejam/round/0000000000432f3b/0000000000432b31.


一种解决方案首先通过将 hi 重复乘以 2 将答案括在 lo 和 hi 之间,直到 n 介于 lo 和 hi 之间,然后使用二分查找来计算确切的答案:

def iroot(k, n):
    hi = 1
    while pow(hi, k) < n:
        hi *= 2
    lo = hi // 2
    while hi - lo > 1:
        mid = (lo + hi) // 2
        midToK = pow(mid, k)
        if midToK < n:
            lo = mid
        elif n < midToK:
            hi = mid
        else:
            return mid
    if pow(hi, k) == n:
        return hi
    else:
        return lo

另一种解决方案使用牛顿法,该方法在整数上效果非常好:

def iroot(k, n):
    u, s = n, n+1
    while u < s:
        s = u
        t = (k-1) * s + n // pow(s, k-1)
        u = t // k
    return s
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何求整数n次根? 的相关文章

  • 与区域指示符字符类匹配的 python 正则表达式

    我在 Mac 上使用 python 2 7 10 表情符号中的标志由一对表示区域指示符号 https en wikipedia org wiki Regional Indicator Symbol 我想编写一个 python 正则表达式来在
  • 将html数据解析成python列表进行操作

    我正在尝试读取 html 网站并提取其数据 例如 我想查看公司过去 5 年的 EPS 每股收益 基本上 我可以读入它 并且可以使用 BeautifulSoup 或 html2text 创建一个巨大的文本块 然后我想搜索该文件 我一直在使用
  • Python getstatusoutput 替换不返回完整输出

    我发现了这个很棒的替代品getstatusoutput Python 2 中的函数在 Unix 和 Windows 上同样有效 不过我觉得这个方法有问题output被构建 它只返回输出的最后一行 但我不明白为什么 任何帮助都是极好的 def
  • 用枢轴点拟合曲线 Python

    我有下面的图 我想用 2 条线来拟合它 使用 python 我设法适应上半部分 def func x a b x np array x return a x b popt pcov curve fit func up x up y 我想用另
  • 需要在python中找到print或printf的源代码[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在做一些我不能完全谈论的事情 我
  • 删除flask中的一对一关系

    我目前正在使用 Flask 开发一个应用程序 并且在删除一对一关系中的项目时遇到了一个大问题 我的模型中有以下结构 class User db Model tablename user user id db Column db String
  • 独立滚动矩阵的行

    我有一个矩阵 准确地说 是 2d numpy ndarray A np array 4 0 0 1 2 3 0 0 5 我想滚动每一行A根据另一个数组中的滚动值独立地 r np array 2 0 1 也就是说 我想这样做 print np
  • 您可以格式化 pandas 整数以进行显示,例如浮点数的“pd.options.display.float_format”?

    我见过this https stackoverflow com questions 18404946 py pandas formatdataframe and this https stackoverflow com questions
  • YOLOv8获取预测边界框

    我想将 OpenCV 与 YOLOv8 集成ultralytics 所以我想从模型预测中获取边界框坐标 我该怎么做呢 from ultralytics import YOLO import cv2 model YOLO yolov8n pt
  • 每个术语出现的次数

    我得到了一个数组a n 2 where n can be 10 5最大时有n个科目和n个学生 全部编号为 1 2 n a i 0 and a i 1 1 lt i lt n 表示在第 i 个科目中 所有来自a i 0 to a i 1 通过
  • 加快网络抓取速度

    我正在使用一个非常简单的网络抓取工具抓取 23770 个网页scrapy 我对 scrapy 甚至 python 都很陌生 但设法编写了一个可以完成这项工作的蜘蛛 然而 它确实很慢 爬行 23770 个页面大约需要 28 小时 我看过scr
  • pip 列出活动 virtualenv 中的全局包

    将 pip 从 1 4 x 升级到 1 5 后pip freeze输出我的全局安装 系统 软件包的列表 而不是我的 virtualenv 中安装的软件包的列表 我尝试再次降级到 1 4 但这并不能解决我的问题 这有点类似于这个问题 http
  • 仅第一个加载的 Django 站点有效

    我最近向 stackoverflow 提交了一个问题 标题为使用mod wsgi在apache上多次请求后Django无限加载 https stackoverflow com questions 71705909 django infini
  • 如何在 Windows 命令行中使用参数运行 Python 脚本

    这是我的蟒蛇hello py script def hello a b print hello and that s your sum sum a b print sum import sys if name main hello sys
  • 为什么 Pickle 协议 4 中的 Pickle 文件是协议 3 中的两倍,而速度却没有任何提升?

    我正在测试 Python 3 4 我注意到 pickle 模块有一个新协议 因此 我对 2 个协议进行了基准测试 def test1 pickle3 open pickle3 wb for i in range 1000000 pickle
  • 如何解决 PDFBox 没有 unicode 映射错误?

    我有一个现有的 PDF 文件 我想使用 python 脚本将其转换为 Excel 文件 目前正在使用PDFBox 但是存在多个类似以下错误 org apache pdfbox pdmodel font PDType0Font toUnico
  • python import inside函数隐藏现有变量

    我在我正在处理的多子模块项目中遇到了一个奇怪的 UnboundLocalError 分配之前引用的局部变量 问题 并将其精简为这个片段 使用标准库中的日志记录模块 import logging def foo logging info fo
  • Python ImportError:无法导入名称 __init__.py

    我收到此错误 ImportError cannot import name life table from cdc life tables C Users tony OneDrive Documents Retirement retirem
  • 如何应用一个函数 n 次? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 假设我有一个函数 它接受一个参数并返回相同类型的结果 def increment x return x 1 如何制作高阶函数repeat可以
  • Kivy - 单击按钮时编辑标签

    我希望 Button1 在单击时编辑标签 etykietka 但我不知道如何操作 你有什么想法吗 class Zastepstwa App def build self lista WebOps getList layout BoxLayo

随机推荐

  • 如何计算复杂文档(.rtf、.doc、.odt 等)中的字数?

    我正在尝试编写一个 Python 函数 在给定文档文件的路径的情况下 返回该文档中的单词数 使用 txt 文件可以很容易地做到这一点 并且有一些工具可以让我同时支持一些更复杂的文档格式 但我想要一个真正全面的解决方案 查看 OpenOffi
  • 如何在移动设备上触发 Mousedown/Mouseup?

    I m 创建网站 https crscillitoe github io AngularBridges 为我的朋友让他们玩更高质量的在线实施桥尾加罗 https en wikipedia org wiki Hashiwokakero 他们中
  • sql查询从两个表中获取记录

    表A Id pin status etc 1 11 FAILED 2 22 3 44 4 55 FAILED Table B id PIN msg counter 1 11 xyz 1 4 55 wsc 10 表数据 我有2个表表A 状态
  • 首次使用 Google 地图启动 Activity 非常慢

    我想在我的活动之一中添加 SupportMapFragment 我将此片段直接添加到布局 xml 中 并将此布局设置为内容视图 但是当Activity第一次启动时 花费的时间太长 超过1秒 下次启动就可以了 只需几毫秒 I tried 删除
  • 实时转录 | Twilio 代理会议

    我指的是克里斯给出的演示here https youtu be Am74WU1zENA t 727 尤其是 Stuart 和 Kris 所显示的单独的活跃转录 我熟悉会议 聚集 拨号 但我无法复制整个架构 我有兴趣让 2 个人参加会议 并以
  • 使用 opencv C++、SolvePnP 函数进行相机位姿估计

    我正在尝试测量相机的姿势 并且我已经完成了以下操作 标记世界 3 D 假设 z 0 因为它是平的 点位于平面上正方形的角上 并假设世界坐标系 以 cms 为单位 以正方形的左上角为原点 并按以下顺序给出世界点 x y 或 列 行 0 0 1
  • 如何将 Galleria 插件与 Rails 4 Pipeline 一起使用

    我最近在让 Galleria 插件与 Rails 4 Pipeline 一起使用时遇到了麻烦 我花了一段时间才弄清楚如何让它工作 所以我想分享解决方案 以防有人遇到类似的问题 1 下载插件后 将galleria 1 3 3 js 这是我写这
  • 如何使用 Jquery 在 iframe 中加载 url

    我想在点击时加载 iframe 这就是我到目前为止所拥有的 frame click function this load http www google com 这不起作用 这是完整的代码 JS Bin http jsbin com oma
  • 如何在div内替换div的样式(背景颜色)

    如果我有这样的 HTML 如何交替使用 id container 的 div 内的 div 的样式 带有 jquery 的背景颜色 偶数和奇数 div div div div div div div div div div 我知道像这样的桌
  • 在 html5 画布上拖动图像并调整其大小

    我正在构建一个 HTML5 画布图像编辑器 将图像上传到画布后 我需要拖动并在画布上调整其大小 我设法上传图像并使其可在画布上拖动 但我需要让它沿着画布调整大小 提前致谢 var Img new Image Img src file Img
  • vb.net 中 Timer.Start 和 Timer.Enabled = True 有什么区别?

    我想知道在 vb net 中启动计时器和启用计时器有什么区别 他们都做同样的事情 根据MSDN http msdn microsoft com en us library 7dd5f0z7 28v vs 110 29 aspx启动方法 通过
  • 何时在数据库列中使用逗号分隔值?

    好的 我知道技术答案是NEVER https stackoverflow com questions 3653462 is storing a comma separated list in a database column really
  • Spotfire IronPython 脚本可滚动筛选器并每一步更新可视化(按日期范围播放按钮)

    大家早上好 我已经研究这个问题几天了 但无法找到解决办法 我已经研究和谷歌搜索无济于事 任何帮助 见解将不胜感激 我正在尝试创建一个按钮 单击该按钮时将自动通过日期过滤器 例如从 1 1 15 开始 并通过 1 2 1 5 在逐步通过时使用
  • 找不到符号方法startActivity(android.content.Intent)

    我是制作 Android 应用程序的初学者 我制作了一个显示我的网页的网络视图 我的网页包含我希望在邮件和拨号等外部应用程序中打开的联系人按钮 因此我得到了一些帮助并得到了这样的代码 import android app Activity
  • 如何检测浏览器类型及其版本

    我如何在 Rails 中检测浏览器类型及其版本 我想检查特定浏览器的版本 如果不需要浏览器版本 则要求用户升级它 我使用下面指定的命令 但由于它不遵循标准模式 我无法使用它 request env HTTP USER AGENT Chrom
  • PHP YAML 解析器 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • CSS 定位和 CSS 边距之间的区别

    今天我学习了CSS中的两个概念 一个是CSS定位 静态 相对 绝对 固定 另一个是CSS边距 它定义元素之间的空间 假设我想移动一个元素 这是最好的方法吗 因为这两个概念似乎都能够做同样的事情 示例可能如下 代码 CSS定位
  • 抱歉,处理您的请求时发生错误[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我在 windows azure 中
  • PhoneGap 文件删除不起作用

    我正在构建一个基本的应用程序 其中非常具有 PhoneGap 功能 因为我试图确定它可以 不能做什么 我已经到了想要删除已在应用程序上下载的文件的阶段 但它不起作用 我使用的大部分代码来自http docs phonegap com en
  • 如何求整数n次根?

    我想找到小于或等于n的k次方根的最大整数 我试过 int n 1 k 但对于 n 125 k 3 这给出了错误的答案 我碰巧知道 5 的立方是 125 gt gt gt int 125 1 3 4 有什么更好的算法 背景 2011 年 这个