为了账号安全,请及时绑定邮箱和手机立即绑定

在 Python 中查找没有外部包的函数的参数

在 Python 中查找没有外部包的函数的参数

RISEBY 2022-06-28 17:43:42
假设我们有一个函数: xa 2 + yb 2 = xc 2 + yd 2。我知道这个等式中的 x 和 y。在不使用任何外部包的情况下,找到该方程的所有可能解的数量的最佳方法是什么:a、b、c 和 d。我不是在这里寻找超大数字,因为 x、y 和 a、b、c、d 的范围都是从 0 到 50。我尝试了唯一想到的事情:四个嵌套循环来查找这些参数它可以工作,但随着数字的增加,它的效率会降低。任何帮助,将不胜感激。
查看完整描述

1 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

我不明白什么需要这么长时间;即使是蛮力也可以在一秒钟内完成。


import time


x = 2

y = 5

start = time.time()

for a in range(51):

    for c in range(a):

        for d in range(51):

            for b in range(d):

                f = x * (a*a - c*c) - y * (d*d - b*b)

                if f == 0:

                    print(a, b, c, d)


print(time.time() - start)

输出:


6 1 4 3

7 0 3 4

7 3 3 5

8 1 2 5

8 5 2 7

9 2 1 6

9 7 1 9

10 3 0 7

10 9 0 11

11 1 1 7

11 4 1 8

11 11 1 13

11 0 9 4

11 3 9 5

12 5 2 9

...

50 1 40 19

50 9 40 21

50 13 40 23

50 27 40 33

50 43 40 47

1.0240814685821533


查看完整回答
反对 回复 2022-06-28
  • 1 回答
  • 0 关注
  • 123 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信