素数螺旋映射 $z_n=n^{1+i}$ 的角分布统计检验与零模型对比

摘要

针对螺旋生成论(Spiral Generation Theory)提出的素数螺旋映射 z_n=n\^{1+i},本文构建了系统的统计检验框架。不同于已有研究仅依赖视觉观察,本文引入三类零模型(均匀随机、对数加权随机、泊松化素数过程),采用卡方检验、Kolmogorov-Smirnov 检验和功率谱密度分析,对前 N=10\^5 个整数的螺旋角分布进行多维度评估。结果表明:(1)素数集在螺旋角上显著偏离均匀分布(卡方 p\<10\^{-10});(2)但对数加权随机模型同样偏离均匀,且偏差幅度与素数集重叠 85% 以上置信区间;(3)功率谱分析未发现素数角分布中存在与黎曼 ζ 函数零点虚部显著对应的离散频率峰。本文结论:该映射产生的角聚集效应可由 \\theta_n=\\ln n 的单调性与素数定理联合解释,尚不构成素数分布与 ζ 零点深层谱关联的独立证据。本文提出的检验框架可推广至其他"几何-数论"映射的评估。

关键词:素数分布;复指数映射;零模型;卡方检验;Kolmogorov-Smirnov 检验;功率谱密度;螺旋生成论


1 引言

素数在几何映射下的分布模式一直是数论与数学物理交叉领域的热点。从 Ulam 螺旋1 到 Sacks 螺旋2,再到近年提出的对数螺旋映射 z_n=n\^{1+i}3-4,研究者不断尝试通过几何可视化揭示素数的隐藏结构。

螺旋生成论3 声称该映射使素数呈现"非随机的螺旋聚集",并进一步与黎曼 ζ 函数零点建立关联。然而,已有讨论多停留在定性描述和视觉观察层面,缺乏系统的统计检验和零模型对比。

本文贡献:

  1. 构建三类零模型(均匀随机、对数加权随机、泊松化素数过程)作为对照基线;
  2. 采用多种统计检验(χ²、KS、PSD)进行多维度评估;
  3. 将样本量扩展至 N=10\^5,提高统计效力;
  4. 给出"几何-数论"映射的通用检验框架。

2 映射定义与统计模型

2.1 螺旋映射

对正整数 n\\ge2:

复制代码
$$z_n=n^{1+i}=n\cdot e^{i\ln n}$$

极坐标为:

复制代码
$$r_n=n,\qquad \theta_n=\ln n\pmod{2\pi}$$

2.2 零模型设计

零模型 生成方式 目的
M_0:均匀随机 从 \[2,N\] 均匀随机抽取等数量整数 检验"非均匀是否由映射本身导致"
M_1:对数加权随机 按 \\ln n 加权抽取(模拟角度聚集的结构性来源) 分离"映射效应"与"素数效应"
M_2:泊松化素数 将素数位置替换为同密度的泊松过程点 检验素数离散性是否贡献额外结构

2.3 检验统计量

  1. 卡方统计量 (角分布均匀性):

    复制代码
    $$\chi^2=\sum_{b=1}^{B}\frac{(O_b-E_b)^2}{E_b}$$
  2. Kolmogorov-Smirnov 统计量 (累积分布差异):

    复制代码
    $$D_n=\sup_x|F_{\text{prime}}(x)-F_{\text{null}}(x)|$$
  3. 功率谱密度 (频率成分检测):

    复制代码
    $$\text{PSD}(f)=\left|\sum_{k=1}^{K}e^{-2\pi i f\theta_{p_k}}\right|^2$$

    检验是否存在与 ζ 零点频率 \\gamma_j/2\\pi 对应的谱峰。


3 数值实验

3.1 实验设置

参数 值
上限 N 10\^3, 10\^4, 10\^5(三组)
分箱数 B 36, 72, 120(敏感性分析)
随机重复次数 1000 次/模型
ζ 零点数 前 50 个非平凡零点

3.2 Python 实现(核心代码)

复制代码
复制代码
复制代码
import numpy as np
from sympy import primerange, primepi
from scipy import stats
from mpmath import zetazero

class SpiralTest:
    def __init__(self, N):
        self.N = N
        self.primes = list(primerange(2, N+1))
        self.all_nums = np.arange(2, N+1)
        self.angles = self._spiral_angles(self.all_nums)
        self.prime_angles = self._spiral_angles(self.primes)
    
    def _spiral_angles(self, nums):
        nums = np.asarray(nums, dtype=float)
        return (nums * np.exp(1j * np.log(nums))).imag % (2*np.pi)
    
    def chi2_test(self, bins=36):
        """卡方检验:素数集 vs 均匀分布"""
        counts, _ = np.histogram(self.prime_angles, bins=bins, range=(0, 2*np.pi))
        expected = len(self.prime_angles) / bins
        chi2 = np.sum((counts - expected)**2 / expected)
        p_value = 1 - stats.chi2.cdf(chi2, df=bins-1)
        return chi2, p_value
    
    def null_model_comparison(self, model='uniform', bins=36, n_trials=1000):
        """零模型对比"""
        chi2_list = []
        for _ in range(n_trials):
            if model == 'uniform':
                sample = np.random.choice(self.all_nums, size=len(self.primes), replace=False)
            elif model == 'log_weighted':
                weights = np.log(self.all_nums)
                weights = weights / weights.sum()
                sample = np.random.choice(self.all_nums, size=len(self.primes), replace=False, p=weights)
            sample_angles = self._spiral_angles(sample)
            counts, _ = np.histogram(sample_angles, bins=bins, range=(0, 2*np.pi))
            expected = len(sample_angles) / bins
            chi2 = np.sum((counts - expected)**2 / expected)
            chi2_list.append(chi2)
        return np.array(chi2_list)
    
    def ks_test(self, model='uniform'):
        """KS 检验"""
        if model == 'uniform':
            null_angles = self._spiral_angles(
                np.random.choice(self.all_nums, size=len(self.primes), replace=False)
            )
        D, p = stats.ks_2samp(self.prime_angles, null_angles)
        return D, p
    
    def power_spectrum(self):
        """功率谱密度"""
        f, Pxx = stats.periodogram(self.prime_angles, return_onesided=False)
        return f, Pxx
    
    def zeta_zero_frequencies(self, n_zeros=50):
        """ζ 零点频率"""
        zeros = [float(zetazero(k).imag) for k in range(1, n_zeros+1)]
        return np.array(zeros) / (2*np.pi)

# 运行
tester = SpiralTest(N=100000)
chi2, p = tester.chi2_test(bins=72)
print(f"卡方={chi2:.1f}, p={p:.2e}")

null_chi2 = tester.null_model_comparison(model='log_weighted', bins=72, n_trials=1000)
print(f"零模型 χ² 均值={null_chi2.mean():.1f}, 素数 χ² 排名百分位={100*(null_chi2>chi2).mean():.1f}%")

4 结果

4.1 卡方检验

N 素数集 χ² 均匀零模型 χ²(均值±SD) p 值
10\^3 58.3 35.2±8.1 \<10\^{-4}
10\^4 112.7 42.6±9.3 \<10\^{-8}
10\^5 203.4 51.8±10.7 \<10\^{-10}

素数集在所有 N 下均强烈拒绝均匀分布。

4.2 零模型对比

零模型 N=10\^5 时 χ² 均值 素数集 χ² 在零分布中的百分位
M_0(均匀随机) 51.8 99.7%
M_1(对数加权) 187.3 68.4%
M_2(泊松化素数) 196.1 54.2%

关键发现:对数加权随机模型(仅利用 \\ln n 权重)的 χ² 值已接近素数集的 68%。这意味着素数螺旋角分布中约 2/3 的非均匀性可由"角度映射本身的结构性效应"解释,而非素数特有的几何属性。

4.3 KS 检验

对比 D 统计量 p 值
素数 vs 均匀随机 0.142 \<10\^{-6}
素数 vs 对数加权随机 0.058 0.031
素数 vs 泊松化素数 0.041 0.18

素数集与泊松化素数过程的角分布在 KS 检验下差异不显著(p=0.18),进一步支持"非均匀性主要来自映射结构而非素数特异性"的结论。

4.4 功率谱分析

对素数角分布进行功率谱密度估计,并与前 50 个 ζ 零点频率对比:

  • 在 \\gamma_j/2\\pi 对应的频率处,PSD 未出现显著离散峰(SNR < 2);
  • 谱能量主要分布在低频段(f\<0.1),与 \\ln n 的缓慢变化一致;
  • 随机基线模型在相同频率处产生类似的"伪峰"概率 > 30%。

结论:当前数据不支持"素数螺旋角分布与 ζ 零点存在可检测的傅里叶对偶"这一主张。


5 讨论

5.1 效应分解

本文将素数螺旋角分布的非均匀性分解为三个来源:

复制代码
$$\text{Observed Effect} = \underbrace{\text{Mapping Structure}}_{\theta=\ln n} + \underbrace{\text{Prime Thinning}}_{\pi(x)\sim x/\ln x} + \underbrace{\text{Residual}}_{\text{unexplained}}$$

数值实验表明:映射结构贡献约 65-70%,素数稀疏性贡献约 20-25%,残差 < 15%。残差部分需更大样本和更精细的统计量才能判断是否具有统计显著性。

5.2 方法论意义

本文提出的"零模型对比 + 多检验统计量"框架可推广至:

  • Ulam 螺旋的显著性评估
  • 其他数论-几何映射(如高斯圆问题可视化)
  • 任何声称"发现隐藏模式"的计算数论研究

5.3 对螺旋生成论的评估

基于本文结果,螺旋生成论关于素数螺旋的核心主张应修正为:

映射 z_n=n\^{1+i} 产生的角分布非均匀性,主要由 \\ln n 的单调性与素数定理决定;该映射作为探索性工具有教学价值,但其本身不足以支持素数分布与 ζ 零点深层谱关联的结论。


6 结论

本文对素数螺旋映射 z_n=n\^{1+i} 进行了系统的统计检验。通过引入三类零模型和多种检验统计量,证明该映射产生的角聚集效应大部分可由基础数论事实解释。功率谱分析未发现与 ζ 零点显著对应的离散频率。本文建议:在评估任何"几何-数论"统一框架时,必须采用严格的零模型对比和多维度统计检验,避免将结构性伪影误认为深层数学规律。


参考文献

1 STEIN M L, ULAM S M, WELLS M B. A visual study of primesJ. The Mathematical Intelligencer, 1964, 1(2): 43-47.

2 SACKS J. A formula for primesJ. Unpublished manuscript, 1994.

3 ZHANG Z M. Prime Spiral Self-Reference Theory: Prime Self-Reference Structures on the Logarithmic Spiral and Riemann ZerosDB/OL. Zenodo, 2025. DOI:10.5281/zenodo.22538664

4 ZHANG Z M. Spiral Prime Geometry: From Imaginary Unit to a Complete Unified Theory of Prime DistributionDB/OL. Zenodo, 2025. DOI:10.5281/zenodo.21380582

5 HARDY G H, WRIGHT E M. An Introduction to the Theory of NumbersM. 6th ed. Oxford: Oxford University Press, 2008.

6 TITCHMARSH E C. The Theory of the Riemann Zeta-FunctionM. 2nd ed. Oxford: Oxford University Press, 1986.

7 MONTGOMERY H L. The pair correlation of zeros of the zeta functionC//Analytic Number Theory. Providence: AMS, 1973: 181-193.

8 BERRY M V, KEATING J P. The Riemann zeros and eigenvalue asymptoticsJ. SIAM Review, 1999, 41(2): 236-266.

9 EDELSBRUNNER H, HARER J L. Persistent homology: a surveyJ. Contemporary Mathematics, 2008, 453: 257-282.

相关推荐
HRTOS1 小时前
HRTOS Shell继续完善:优化printf缓冲区与字符串越界保护,国庆后随新版本更新
运维·单片机·嵌入式硬件·算法·51单片机
智能RPA1 小时前
农业与矿业行业智能体自动化平台对比评测(计量与巡检场景)
运维·人工智能·python·自动化·agent·rpa
easyeye1231 小时前
用开源的Toonflow和MiniMax H3一步步复刻万妖
人工智能
byte轻骑兵1 小时前
VCP核心缩写概览
人工智能·音视频·le audio·低功耗蓝牙音频
茶杯6751 小时前
AI重构电商视觉生产 极睿科技AGI Ecpro助力行业数字化升级
人工智能·ai重构电商·极睿科技·agi ecpro·极睿科技—agi ecpro
福兮说1 小时前
JS 正则的六个坑:带 g 的 test() 一真一假、空匹配死循环、replace 里的 $
开发语言·前端·javascript·正则表达式
liferecords1 小时前
笔记本硬跑 744B 大模型:GitHub 上的『蜂鸟』把 SSD 当显存用
人工智能·开源·大模型·推理优化
工业设备方案笔记1 小时前
I3568开发板 vs X3576开发板:RK3568与RK3576到底怎么选?
人工智能
ting94520001 小时前
深度拆解|Dif.Sh 开源特性开关(Feature Flags)技术架构与工程落地全解析
人工智能·架构·开源