python 中的日志精度

2024-04-03

以下是检查数字是否可以用幂表示的源代码,但为什么代码失败n = 76 ** 89 - 1 and n = 76 ** 89。我该如何解决这个错误?对于两个 n 给出x=log(n,2)/log(i,2)=89.0

from math import log,sqrt,floor
import sys
n= 76 ** 89 - 1
t=floor(sqrt(n))+1
flag=False


for i in range(2,t):
    x=log(n,2)/log(i,2)
    print(x)
    if x-int(x)<sys.float_info.epsilon:
        print("YESSSSSSSSSSSSS!")
        flag=True
        break

if not flag:
    print("Nooooooooooooooooooo!")

您的代码仅查找候选人,但不检查他们是否really匹配。 浮点不准确使得您无法区分像这样的非常大的值和相同的值减一。

但由于 python 内置了无限范围整数算术,你可以check你发现的确实是匹配的。

我的想法:一旦找​​到幂,就计算理论数的幂(通过四舍五入),然后计算整数幂,并比较整数。

from math import log,sqrt,floor
import sys
n = 76 ** 89
t=floor(sqrt(n))+1
flag=False


for i in range(2,t):
    x=log(n,i)  # faster than x=log(n,2)/log(i,2)

    if x-int(x)<sys.float_info.epsilon:
        x = int(round(x))
        r = int(round(n**(1/x)))
        print("found candidate: ",x,r)
        if n == r**x:   # exact integer comparison with initial value & found values
            print("YESSSSSSSSSSSSS!")
            flag=True
            break
        else:
            print("but not exact")

if not flag:
    print("Nooooooooooooooooooo!")

76 ** 89 - 1值,您会得到“但不准确”,因为计算出的功率不匹配n value.

旁白:使用起来更快x=log(n,i)代替x=log(n,2)/log(i,2)由于涉及的浮动操作较少,因此可能也更准确。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 中的日志精度 的相关文章

随机推荐

  • 比较javascript中两个变量是否引用同一个对象

    我正在寻找一种方法来检查两个变量是否引用 JavaScript 中的同一个对象 ex var a foo bar var b foo bar var aa a testSame a b false testSame a aa true va
  • 将整数列转换为双精度

    我导入了 2 个包含实验数据的 csv 文件 一个是对照组 一个是测试组 此处显示头部 问题在于 在 Gaze T 中 列 5 的类型为 double 而在 Gaze C 中 列的类型为整数 因此 当对两个数据帧中的距离进行总结时 我得到不
  • 如何调用重置选择并选择jqGrid中的所有内容?

    如何重置所选行并在单击外部按钮时选择所有行 我正在尝试重置选择 但不起作用 jQuery selectAll click function jQuery cbox trigger click jQuery clear click funct
  • 如何以编程方式设置 selectize.js 选项列表?

    我知道如何设置optionList on 初始化但我如何以编程方式设置它 我有一个邀请列表 array select invite options inviteList 您可以使用 load 方法通过以下方式设置选项编程式API https
  • Gulp:无依赖的同步性

    我正在将构建系统迁移到 gulp 并且遇到了一个问题 我定义了各种构建任务 scripts style jade等 以及clean删除所有构建文件的任务 我想确保构建任务不会在清理任务之前运行 BUT我还希望能够在不先清理的情况下运行构建任
  • 如何防止用户关闭我的应用程序?

    我有一个将在餐厅使用的 Android 应用程序 所以我希望用户无法退出该应用程序 用户唯一可以做的就是使用应用程序 如果可能的话 只有管理员可以通过登录或重新启动设备退出应用程序 我不知道哪种方法是最好的方法 有解决方案或其他方法来做到这
  • PayPal iOS 和 Android SDK 中的 PAYMENT_CREATION_ERROR

    今天 我在 iOS 应用程序中使用 PayPal 结帐时遇到问题 用户登录后 我收到错误 PayPal SDK 请求失败 出现错误 PAYMENT CREATION ERROR 设置此付款时出现问题 请访问 PayPal 网站检查您的帐户
  • 虚拟审判室设计

    作为我的硕士项目的一部分 我建议构建一个用于零售服装店的虚拟试用室应用程序 目前 它旨在直接在商店中使用 但也可能扩展到在线商店 该应用程序将通过在屏幕上的 3D 复制品上展示选定的服装 向客户展示所选服装的外观 它涉及3个步骤 评估客户
  • C++11 Polyfills

    我正在开始一个新项目 目标是MSVC GCC latest GCC 4 3 ARM和更多 这waf我们已经构建了构建系统C 11编译器的功能检测 我现在拥有针对我目标的编译器中所有功能的预处理器宏C 11 例如 ifdef WAF FEAT
  • C++绘制像素问题

    如何制作窗口 或者更像剪辑区域 我可以在其中绘制像素 它可能使用 WinApi 但是我不希望我的项目看起来像 winapi 所以它将有 int main 代替 int WINAPI WinMain HINSTANCE 我找到了一个例子 我可
  • django admin - 如何显示缩略图而不是文件路径

    我正在尝试在管理界面中显示模型的缩略图 当我使用 list display 添加图像字段时 它显示文件的路径而不是图像本身 如何显示图像并控制其大小 我通过添加解决了这个问题 def image thumb self return img
  • 有哪些开源 C 项目值得学习来学习好的设计? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有哪些小型 C 语言开源项目对于学习良好的设计很有趣 该项目应该是 不太大 像linux内核 有据可查 也许仍在积极开发中 我刚刚开始学习
  • 错误:未指定模块(IntelliJ IDEA)

    我试图在 IntelliJ IDEA 中作为静态 Web 项目执行一个简单的程序 我是新手 正在学习使用 Node js 进行 Web 开发 我向IntelliJ IDEA官网寻求帮助 但错误还是一样 不过 我还配置了设置和项目结构 Err
  • 我怎样才能说服 IE 只显示 application/json 而不是提供下载它?

    在调试使用 AJAX 的 jQuery 应用程序时 我经常需要查看服务返回到浏览器的 json 因此 我会将 JSON 数据的 URL 放入地址栏中 这对于 ASPNET 来说很好 因为如果出现编码错误 我可以在浏览器中看到 ASPNET
  • 从 SQL 脚本调用 aspnet_regsql.exe

    如何打电话aspnet regsql exe来自 SQL 脚本 谢谢 你可以看看xp cmdshell http msdn microsoft com en us library aa260689 SQL 80 aspx xp cmdshe
  • 需要与 Microsoft.SqlServer.Management.Smo Transfer 类连接的帮助

    我试图复制所有内容 数据 索引 触发器 存储过程 在 C 中从一个数据库到另一个数据库 这是我的代码 SqlConnection connection new SqlConnection ConnectionString Server my
  • 通过减去属性来获取两个对象的差异

    我试图找出两个物体之间的差异 previousChart BWP 1 ZAR 1 3 USD 0 09324 number 1 currentChart BWP 1 ZAR 1 35 USD 0 01 number 2 期望的答案是 new
  • 如何让 Swing 应用程序感知屏幕尺寸变化?

    当我的 swing 应用程序运行时 我更改屏幕尺寸 例如从 1024x768 更改为 800x600 我可以收听任何活动以获得有关此事件的通知吗 或者 我可以每隔几秒检查一次屏幕尺寸 但 Toolkit getScreenSize 不断告诉
  • 在 Apache Spark SQL 中我们可以回滚事务吗

    我想让spark sql将数据持久化 这样的话我可以使用回滚我们已经持久化的数据吗 前任 假设我们有 3 个表 t1 t2 和 t3 t1 和 t2 表数据已成功保留 但 t3 在数据完整性级别上失败了 那么我可以回滚我已经坚持的 t1 和
  • python 中的日志精度

    以下是检查数字是否可以用幂表示的源代码 但为什么代码失败n 76 89 1 and n 76 89 我该如何解决这个错误 对于两个 n 给出x log n 2 log i 2 89 0 from math import log sqrt f