如何求整数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次根? 的相关文章

  • 颜色逻辑算法

    我们正在构建一个体育应用程序 并希望将团队颜色融入到应用程序的各个部分 现在 每个团队都可以使用几种不同的颜色来表示 我想做的是执行检查以验证两个团队颜色是否在彼此一定的范围内 这样我就不会显示两个相似的颜色 因此 如果团队 1 的主要团队
  • 在 python 程序中合并第三方库的最佳实践是什么?

    下午好 我正在为我的工作编写一个中小型Python程序 该任务需要我使用 Excel 库xlwt and xlrd 以及一个用于查询 Oracle 数据库的库 称为CX Oracle 我正在通过版本控制系统 即CVS 开发该项目 我想知道围
  • SQLAlchemy 通过关联对象声明式多对多自连接

    我有一个用户表和一个朋友表 它将用户映射到其他用户 因为每个用户可以有很多朋友 这个关系显然是对称的 如果用户A是用户B的朋友 那么用户B也是用户A的朋友 我只存储这个关系一次 除了两个用户 ID 之外 Friends 表还有其他字段 因此
  • 如何在flask中使用g.user全局

    据我了解 Flask 中的 g 变量 它应该为我提供一个全局位置来存储数据 例如登录后保存当前用户 它是否正确 我希望我的导航在登录后在整个网站上显示我的用户名 我的观点包含 from Flask import g among other
  • Python(Selenium):如何通过登录重定向/组织登录登录网站

    我不是专业程序员 所以请原谅任何愚蠢的错误 我正在做一些研究 我正在尝试使用 Selenium 登录数据库来搜索大约 1000 个术语 我有两个问题 1 重定向到组织登录页面后如何使用 Selenium 登录 2 如何检索数据库 在我解决
  • 使用 matplotlib 绘制时间序列数据并仅在年初显示年份

    rcParams date autoformatter month b n Y 我正在使用 matpltolib 来绘制时间序列 如果我按上述方式设置 rcParams 则生成的图会在每个刻度处标记月份名称和年份 我怎样才能将其设置为仅在每
  • Flask 会话变量

    我正在用 Flask 编写一个小型网络应用程序 当两个用户 在同一网络下 尝试使用应用程序时 我遇到会话变量问题 这是代码 import os from flask import Flask request render template
  • 如何使用Conda下载python包并随后离线安装?

    我知道通过 pip 我可以使用以下命令下载 Python 包 但 pip install 破坏了我的内部包依赖关系 当我做 pip download
  • JavaScript 中的埃拉托斯特尼筛法对大量数据无限运行

    我一直在尝试写埃拉托斯特尼筛法 http en wikipedia org wiki Sieve of EratosthenesJavaScript 中的算法 基本上我只是按照以下步骤操作 创建从 2 到 n 1 的连续整数列表 令第一个素
  • 如何使用 Ansible playbook 中的 service_facts 模块检查服务是否存在且未安装在服务器中?

    我用过service facts检查服务是否正在运行并启用 在某些服务器中 未安装特定的软件包 现在 我如何知道这个特定的软件包没有安装在该特定的服务器上service facts module 在 Ansible 剧本中 它显示以下错误
  • 测试 python Counter 是否包含在另一个 Counter 中

    如何测试是否是pythonCounter https docs python org 2 library collections html collections Counter is 包含在另一个中使用以下定义 柜台a包含在计数器中b当且
  • Python pickle:腌制对象不等于源对象

    我认为这是预期的行为 但想检查一下 也许找出原因 因为我所做的研究结果是空白 我有一个函数可以提取数据 创建自定义类的新实例 然后将其附加到列表中 该类仅包含变量 然后 我使用协议 2 作为二进制文件将该列表腌制到文件中 稍后我重新运行脚本
  • 如何加速Python中的N维区间树?

    考虑以下问题 给定一组n间隔和一组m浮点数 对于每个浮点数 确定包含该浮点数的区间子集 这个问题已经通过构建一个解决区间树 https en wikipedia org wiki Interval tree 或称为范围树或线段树 已经针对一
  • 如何在Python中获取葡萄牙语字符?

    我正在研究葡萄牙语 角色看起来很奇怪 我怎样才能解决这个问题 代码 import feedparser import random Vou definir os feeds feeds conf feedurl http pplware s
  • python获取上传/下载速度

    我想在我的计算机上监控上传和下载速度 一个名为 conky 的程序已经在 conky conf 中执行了以下操作 Connection quality alignr wireless link qual perc wlan0 downspe
  • 无法在 Python 3 中导入 cProfile

    我试图将 cProfile 模块导入 Python 3 3 0 但出现以下错误 Traceback most recent call last File
  • Fabric env.roledefs 未按预期运行

    On the 面料网站 http docs fabfile org en 1 10 usage execution html 给出这个例子 from fabric api import env env roledefs web hosts
  • Scrapy:如何使用元在方法之间传递项目

    我是 scrapy 和 python 的新手 我试图将 parse quotes 中的项目 item author 传递给下一个解析方法 parse bio 我尝试了 request meta 和 response meta 方法 如 sc
  • 在一个区域中拟合二维多边形的算法?

    这有标准吗 算法名称 说 我有 10 个不同大小的多边形 我有一个特定大小的区域 我想知道如何填充该区域中的最多多边形 以及它们是如何拟合的 笔记 多边形可以根据限制集进行旋转 一个可能的名称是包装问题 http en wikipedia
  • Statsmodels.formula.api OLS不显示截距的统计值

    我正在运行以下源代码 import statsmodels formula api as sm Add one column of ones for the intercept term X np append arr np ones 50

随机推荐

  • 如何计算复杂文档(.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 年 这个