使用 sagemath 的哥德巴赫图

Goldbach graph using sagemath

我正在学习 SageMath(使用 Python 3) 并玩弄哥德巴赫猜想。

我写了这个函数(有效!):

def Goldbach(n):
    if n % 2 != 0 or n <= 2:
        show("No és parell")
    else:
        for i in srange(n):
            if is_prime(i):
                for j in srange(n):
                    if is_prime(j) and i + j == n:                        
                        a = [i, j]
                        show(a)
    return

现在我正在尝试(不知道)做以下情节:

r(2k)表示2k的哥德巴赫分区数, 猜想肯定 r(2k) > 0 如果 k > 1.

我必须绘制点图 (k, r(2k))k > 2。 我该怎么做?

首先,让我们在 Sage 中获得一些更好的实现 计算 r(K)(对于 K > 2 某个偶数整数)的例程 p + 的解q = 2k, p, q素数.

当解 (p, q)(q, p) 不同时,我们计算它们。

def r(K):
    if K not in ZZ or K <= 2 or K % 2:
        return None
    if K == 4:
        return 1
    count = 0
    for p in primes(3, K):
        for q in primes(3, K + 1 - p):
            if p + q == K:
                count += 1
    return count

goldbach_points = [(K, r(K)) for K in range(4, 100,2)]
show(points(goldbach_points))

这给出: