初始化项目,由ModelHub XC社区提供模型

Model: Brunobkr/OFFELLIA_Quantis
Source: Original Platform
This commit is contained in:
ModelHub XC
2026-08-11 10:11:17 +08:00
commit 86836ec189
71 changed files with 29901 additions and 0 deletions

150
SACRED_TOTIENT_42Fn.py Normal file
View File

@@ -0,0 +1,150 @@
import os
import math
import numpy as np
import matplotlib.pyplot as plt
from math import sin, pi, sqrt
from collections import defaultdict
# ===============================
# CONFIGURAÇÕES FUNDAMENTAIS
# ===============================
PHI = (1 + sqrt(5)) / 2
MOD = 42
BRACOS_42 = list(range(42))
# ===============================
# UTILIDADES
# ===============================
def is_prime(n):
if n < 2:
return False
for i in range(2, int(sqrt(n)) + 1):
if n % i == 0:
return False
return True
def helicoidal_fn(n, r):
x = (n - r) / MOD
return sin(2 * pi * PHI * x) ** 2
# ===============================
# ENTRADA DO USUÁRIO
# ===============================
N = int(input("Limite máximo N (ex: 100000): "))
IGNORE_PRIMES = input("Ignorar primos? (s/n): ").lower() == "s"
EXPORT_TXT = input("Exportar dados TXT? (s/n): ").lower() == "s"
# ===============================
# PREPARAÇÃO DE PASTAS
# ===============================
BASE_DIR = "SACRED_TOTIENT_V2_OUTPUT"
SUBDIRS = ["plots_2D", "plots_3D", "plots_fractal", "data_txt"]
for d in SUBDIRS:
os.makedirs(os.path.join(BASE_DIR, d), exist_ok=True)
# ===============================
# CÁLCULO PRINCIPAL
# ===============================
dados = []
por_braco = defaultdict(list)
for n in range(1, N + 1):
r = n % 42 # braço geométrico real (0..41)
fn = helicoidal_fn(n, r)
theta = 2 * pi * r / 42
raio = fn
z = n
dados.append((n, r, fn, theta, raio, z))
por_braco[r].append((n, fn, theta, raio, z))
# ===============================
# GRÁFICOS 2D GERAIS
# ===============================
ns = [d[0] for d in dados]
fns = [d[2] for d in dados]
plt.figure()
plt.scatter(ns, fns, s=1)
plt.title("Distribuição Global Fn")
plt.xlabel("n")
plt.ylabel("Fn")
plt.savefig(f"{BASE_DIR}/plots_2D/Fn_global.png")
plt.close()
# ===============================
# GRÁFICOS POR BRAÇO
# ===============================
for r, vals in por_braco.items():
ns_r = [v[0] for v in vals]
fns_r = [v[1] for v in vals]
plt.figure()
plt.scatter(ns_r, fns_r, s=2)
plt.title(f"Fn - Braço r={r}")
plt.xlabel("n")
plt.ylabel("Fn")
plt.savefig(f"{BASE_DIR}/plots_2D/Fn_braco_{r}.png")
plt.close()
# ===============================
# HÉLICE 3D GLOBAL
# ===============================
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
xs = [d[3] * math.cos(d[3]) for d in dados]
ys = [d[3] * math.sin(d[3]) for d in dados]
zs = [d[5] for d in dados]
ax.scatter(xs, ys, zs, s=1)
ax.set_title("Hélice Helicoidal Global Fn")
ax.set_xlabel("X")
ax.set_ylabel("Y")
ax.set_zlabel("n")
plt.savefig(f"{BASE_DIR}/plots_3D/helice_global.png")
plt.close()
# ===============================
# FRACTAL ZOOM LOCAL
# ===============================
zoom_lim = min(N, 230539333248)
zoom_ns = ns[:zoom_lim]
zoom_fns = fns[:zoom_lim]
plt.figure()
plt.scatter(zoom_ns, zoom_fns, s=2)
plt.title("Zoom Fractal Inicial Fn")
plt.xlabel("n")
plt.ylabel("Fn")
plt.savefig(f"{BASE_DIR}/plots_fractal/zoom_fractal_inicial.png")
plt.close()
# ===============================
# EXPORTAÇÃO TXT
# ===============================
if EXPORT_TXT:
with open(f"{BASE_DIR}/data_txt/dados_completos.txt", "w") as f:
f.write("n,r,Fn,theta,raio,z\n")
for d in dados:
f.write(",".join(map(str, d)) + "\n")
print("\n=== SACRED TOTIENT FN HELICOIDAL V2 FINALIZADO ===")
print(f"Total de pontos analisados: {len(dados)}")
print("Resultados salvos em:", BASE_DIR)