什么是计算不同根的方程的pythonic方法?

时间:2012-05-07 22:33:22

标签: python math

我有一个等式((1 -/+ p)/6) % p,我需要运行几千万个p的值。

我目前的代码是

primes = [5,7,11,13,17,19,23,29,31,37,41,43,47,
          53,59,61,67,71,73,79,83,89,97]

if __name__ == "__main__":

    for p in primes:

        print ((1 - p)/6) % p, ((1 + p)/6) % p

正如预期的那样,给了我

4 1
6 1
9 2
11 2
14 3
16 3
19 4
24 5
26 5
31 6
34 7
36 7
39 8
44 9
49 10
51 10
56 11
59 12
61 12
66 13
69 14
74 15
81 16

我想知道的是如何获得

1
6
2
11
3
16
4
5
26
31
7
36
8
9
10
51
56
12
61
66
14
15
81

我还没有尝试过任何东西,我已经抛弃了使用发电机的想法。但是,在这样做时,我不确定我是否会遇到性能问题。

1 个答案:

答案 0 :(得分:3)

这是你在找什么?

for p in primes:
    r1=f(p - 4) % p
    r2=((1 - p)/6) % p
    if r2==r1:
        print r1, r2
    else:
        print r1, ((1 + p)/6) % p   

当你说你还没有尝试过任何东西时,不要尝试优化它!只需得到能够产生你想要的产品 - 然后担心使用发电机或性能问题。

编辑:

你已经大大改变了你的问题,现在还不清楚你在寻找什么。如果您正在寻找根发现,here is some code

Scipy也有很多根查找方法。

选择一个方向 - 运行一些东西 - 如果它太慢,请尝试修复它。