两种产品之间的差异最接近于零:非暴力解决方案?

2023-12-27

In a 挪威科学博物馆 https://nordnorsk.vitensenter.no/我遇到了以下数学游戏:

目标是放置从 0 到 9 的 10 位数字,使两种产品之间的差异最接近于零。 (246是目前最低分)。

回到家我写了以下暴力代码:

import time
from itertools import permutations


def form_number(x, y, z, a, b):
    # not explicitly stated, but presume that leading zeroes are not allowed
    if x == 0 or a == 0:
        return 0
    return ((100 * x) + (10 * y) + z) * ((10 * a) + b)

def find_nearest_zero(*args):
    assert len(args) == 10
    return form_number(*args[:5]) - form_number(*args[5:])

if __name__ == '__main__':
    start = time.time()
    count = 0
    for p in permutations(range(10), 10):
        result = find_nearest_zero(*p)
        if result == 0:
            count += 1
            print '{}{}{} * {}{} = {n}'.format(*p[:5], n=form_number(*p[:5]))
            print '{}{}{} * {}{} = {n}'.format(*p[5:], n=form_number(*p[5:]))
            print
    print 'found {} solutions'.format(count)
    print time.time() - start

如果我们不允许前导零,那么这将在大约 12 秒内打印 128 个可能的解决方案。

但我想知道,是否有一种算法或更好的方法以非暴力方式解决这个问题?


如果您假设存在差值为 0 的解,则可以通过质因数来实现。

If ab - cd = 0,则 a 的质因数b and cd 必须相同。您可以通过遍历所有 3 位素数(只有 143 个)来开始搜索,并查看它们是否具有仅包含析取数字的倍数。如果是这种情况,您有 2 个三位数号码,只需检查 2 个位数即可。

如果找不到解决方案,请继续查找 2 位数质数,并查找具有分离数字的 2 或 3 位数倍数。那么你只需要对剩下的2个数进行排列即可,这样就少了很多。

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

两种产品之间的差异最接近于零:非暴力解决方案? 的相关文章

随机推荐

  • 当指定 return 时,location 块中的 auth_basic 不起作用?

    我认为这会起作用 但由于某种原因它会跳过 auth basic 并始终返回 200 如果我将 200 替换为 301 重定向 也会发生同样的情况 如果我注释掉返回语句 它就可以正常工作 理想情况下我想要一个 auth一旦通过身份验证 端点就
  • C 中带有 pthread 的线程中的计时器?

    在线程中 我需要定期以不同的时间间隔做一些工作 什么是一个好的方法来做到这一点 使用 sleep 然后我需要跟踪下一次唤醒的间隔 这似乎不是最好的方法 thanks 您可以使用clock nanosleep与TIMER ABSTIME标记为
  • 如何从密钥库导出 .key 和 .crt

    当我在开发机器上构建 Android 应用程序时 我需要为应用程序提供 SSL 证书 因此我使用 Tomcat 的 keytool 生成了一个密钥库 我从密钥库中提取了证书并将其放入 bks 中以使用 android 一切顺利 现在我们必须
  • Chrome 中高度 100%

    我的一侧有问题divChrome 中的高度不会达到 100 在FF中效果很好 我在用着 html body padding 0px width 100 height 100 div min height 100 这是为什么 这对我来说在每个
  • 确认回发 OnClientClick 按钮 ASP.NET

  • 使用 Graph FQL 获取朋友当前位置的纬度/经度

    我正在尝试使用单个 API 调用来获取用户所有朋友的纬度 经度 我相信我需要编写一个多查询 FQL 语句 但我无法获得正确的语法 我相信这两个查询需要类似于以下内容 friends SELECT uid current location F
  • 检测 Swift 应用程序是否正在从 Xcode 运行

    我想以编程方式确定 iOS 应用程序是否直接从 XCode 运行 在模拟器中或在连接设备上 我已经尝试过所述的 D DEBUG 解决方案here https stackoverflow com a 30013587 630657 但是当我断
  • ARKit节点100m后消失

    我目前正在开发 ARKit SceneKit 应用程序 我注意到如果我把一个节点放在100m 节点将显示得很好 但如果我将其设置为101m或更远 它不会显示 这是距离限制吗 var translation matrix identity f
  • OpenJDK 和 com.sun.net

    我正在考虑在 com sun net 包中使用 HttpsConfigurator HttpsServer 和 HttpContext 此外 我的项目要求的一部分是使用 OpenJDK 我在 Eclipse 中编码 它不会自动从 com s
  • 如何在 make 模式规则的依赖项中使用模式相关变量

    我想使用模式相关变量中的依赖项来定义 GNU make 模式规则 我想要的是这样的 exe EXE SOURCES EXE RESOURCES CSC V CSC CSCFLAGS EXE CSCFLAGS target exe out E
  • 计数后将行转换为列[重复]

    这个问题在这里已经有答案了 我有下表 Type1 Type2 A T1 A T2 A T1 A T1 A T2 A T3 B T3 B T2 B T3 B T3 我想要输出为 Type1 T1 T2 T3 A 3 2 1 B 0 1 3 我
  • 选择单选按钮组中的单选按钮

    我是 android 新手 我正在尝试使用无线电组的示例程序 我在单选组下声明了 2 个单选按钮 我想在其中选择哪个单选按钮 无线电组 因为想要在匿名类新的 onClickListener 的 if 和 elseif 条件中使用它 我尝试声
  • 从长 UTC 时间戳到 JAVA UTC 到 EST

    我正在尝试将 UTC 长时间戳转换为东部标准时间 但我完全迷失了 任何提示都会很棒 谢谢 右 尝试这个 Date estTime new Date utcTime getTime TimeZone getTimeZone EST getRa
  • Visual Studio 2012 专家模式

    如何进入专家模式 它不在 工具 下 我需要进入专家模式才能使用 观看 功能 None
  • Web API - 405 - 请求的资源不支持 http 方法“PUT”

    我有一个 Web API 项目 但无法对其启用 PUT Patch 请求 我从 fiddler 得到的回应是 HTTP 1 1 405 Method Not Allowed Cache Control no cache Pragma no
  • 逐像素复制两个图像

    我正在尝试处理深度图中的每个像素 我正在实现图像分割 我不知道如何处理深度大于 1 的图像中的像素 此示例代码将深度图逐像素复制到另一个 cv Mat 如果我将其标准化 标准化图像的深度 1 它就可以正常工作 但它不适用于深度 3 因为 a
  • Maui AppShell - 打开导航

    我在使用 Maui AppShell 时遇到一些概念问题 当我启动我的应用程序时 我想向我的用户展示 登录页面 如果未经过身份验证 入职页面 如果他们已通过身份验证 但尚未填写基本信息 否则 主视图 但 AppShell 看起来相当静态
  • Hibernate 和其他框架或规范之间有哪些差异/相似之处?

    我想知道 Hibernate 和 Java EE 5 中的简单持久性之间的区别 相似之处 我不清楚 Hibernate 是否实现了 Java EE 5 持久性实现 或者它是否是后端系统上数据表示的完全不同的方法 我对 Hibernate 及
  • 在android中设置Scrollview内的Viewpager高度

    我必须在滚动视图内显示一个视图寻呼机 寻呼机行中图像下方的图像和文本 我正在从网络下载图像 文本并显示在寻呼机行中 我将 viewpager 包装在 srollview 中以支持横向模式
  • 两种产品之间的差异最接近于零:非暴力解决方案?

    In a 挪威科学博物馆 https nordnorsk vitensenter no 我遇到了以下数学游戏 目标是放置从 0 到 9 的 10 位数字 使两种产品之间的差异最接近于零 246是目前最低分 回到家我写了以下暴力代码 impo