🌌ABC予想から生まれた第2宇宙式!
(前回までのABC予想関連の記事リンク)
📐さらなる一般化を目指して
$$
a+b=c
$$
固定値としていた $${b = 1}$$ を可変とするために宇宙式の変形・拡張パターンを模索する。
$$
N+1 = (P+1)^2
$$
$${P}$$ 由来の $${N}$$を 項を $${N_1, N_2}$$ として異なる値を取る組として以下のように構成してきた。
$$
N_1 + 1 = N_2
$$
ここで第3の $${N_3}$$ 項を必要とする。
現行の宇宙式のままではもう、他の変形パターンは生めない。
新たな宇宙式が必要となる。
🌌第2の宇宙式:加法的素数積の重層構造
定義
$$
a = P, \quad b = P^2, \quad c = P + P^2 = P(P + 1)
\quad\text{with}\quad a + b = c
$$
とする。
但し、P をまた同じにしてしまうと意味がないので、
$$
a = P, \quad b = Q, \quad c = P + Q
$$
とする必要がある。
検証
以下のコードでこの組み合わせにおいての例外が存在するかを検証する。
# 第2宇宙式の例外探索検証コード
import itertools
import math
from sympy import factorint
# sympy.rad() はラジアン変換なので、ABC予想のrad(n)を自作する
def rad(n):
return math.prod(set(factorint(n).keys()))
# 小さい素数で素因数積の候補
primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31]
# 素因数積の候補生成(すべての非空部分集合の積)
def generate_products(primes):
products = set()
for r in range(1, len(primes) + 1):
for combo in itertools.combinations(primes, r):
p = math.prod(combo)
products.add(p)
return sorted(products)
# 素因数積の候補を生成
candidates = generate_products(primes)
# 結果格納
results = []
# abc 三数の組み合わせを生成し、rad(abc) を計算する
for a in candidates:
for b in candidates:
if math.gcd(a, b) != 1:
continue
c = a + b
abc = a * b * c
rad_abc = rad(abc)
epsilon = 2 / (min(a, b) * math.log(min(a, b)))
F_val = c / (rad_abc ** (1 + epsilon))
results.append(
{
"a": a,
"b": b,
"c": c,
"rad(abc)": rad_abc,
"epsilon": epsilon,
"F(a,b)": F_val,
"OK?": F_val < 1,
}
)
# 表示
import pandas as pd
df = pd.DataFrame(results)
print(df[df["OK?"] == False] if not df[df["OK?"] == False].empty else "例外なし!")結果
例外なし!第二の宇宙式は成る
よって
$$
c = P + P^2 = P(P+1)
$$
となる事が判明し、第二の宇宙式
$$
\begin{align*}
a&=P\\
b&=Q\\
c=a+b&=P+Q\\
\end{align*}
$$
を得る。
例:
$$
\begin{align*}
P&= p\{2, 3, 5\}\\
Q&= q\{7\}\cdot(P+1)\\
\\
a &= P &=&p &=&(2\times3\times5) &=30\\
b &= Q &=&(p+1)q &=&\left((2\times3\times5)+1\right)\times7&=217\\
c &= P+Q &=&p+(p+1)q&=&(13\times19) &=247\\
\end{align*}
$$
ここで新たな素因子の $${O_{P+Q}=\{13, 19\}}$$ を生む。
和は、構造を破壊する。
構造再解釈
この例を構造的に見てみる。
構造が破壊されていると見るのは、まだ早い。
宇宙式は、
$$
N+1=(P+1)^2
$$
と言っている。
つまり、$${O_{P+Q}={13, 19}}$$ は、$${O_{P+Q}\to{13±1, 19±1}}$$ のゆらぎを持って、まだかろうじて接続している。とも言える。
$$
O_{P+Q}\approx\left[13\pm1 = \{12, 14\}, 19 \pm1=\{18, 20\}\right]
$$
実測値は、
12 x 19=228
13 x 18=234
13 x 19=247
13 x 20=260
14 x 19=266
と、飛び飛びとなるけど、因数関係で近いと言える。
これを因数分解すれば、
$$
O_{P+Q}\approx\left[13\pm1 = \{(2^2\cdot3), (2\cdot7)\}, 19 \pm1=\{(2\cdot3^2), (2^2\cdot5)\}\right]
$$
このように元の因数 $${P+Q=\{2, 3, 5, 7\}}$$ を得る。
この差 $${\pm1}$$ が、ABC予想としての補正項となるゆらぎ幅として現れている。そして、元となる素因子の合成数 $${\pm1}$$ が新たな素数候補となる。と推測される。
そして、大きな数になれば、その中の素因子の大きな値に元となる因子が詰まっており、その因子を±1で分解し続ければいずれ元の因子 p, q まで遡れる。つまり、どこかで単数1のゆらぎが積み重なって素因子を象る。という仕組みがそこにある。
例:
a=30: b=873103 factors={7: 1, 11: 1, 17: 1, 23: 1, 29: 1},
c=873133 factors={873133: 1}a=p{2,3,5}=30
b=q{7, 11, 17, 23, 29}=873,103
c=p+q(p+1)=873,133 ※素数!
$$
873133\pm1\approx\{873132, 873134\}
$$
この数に素因子の連鎖 <Drift-Factor chain tree> 構造が組み込まれている。
鎖の繋がりが一意となる構造なら、それが基本構造の骨組み。
となろう(なるか?)その式が第三の宇宙式となる (D予想)
873133 (factors: [873133])
873132 (factors: [2, 3, 13, 29, 193])
12 (factors: [2, 3])
14 (factors: [2, 7])
192 (factors: [2, 3])
194 (factors: [2, 97])
96 (factors: [2, 3])
98 (factors: [2, 7])
873134 (factors: [2, 461, 947])
460 (factors: [2, 5, 23])
462 (factors: [2, 3, 7, 11])
946 (factors: [2, 11, 43])
42 (factors: [2, 3, 7])
44 (factors: [2, 11])
948 (factors: [2, 3, 79])
78 (factors: [2, 3, 13])
80 (factors: [2, 5])
コード
from sympy import factorint
# 再帰的に ±1 分解を繰り返して元因子群にたどり着くまで探索する
# 元因子集合
base_primes = {2, 3, 5, 7, 11, 17, 23, 29}
# ツリー構造を再帰的に構築
def build_factor_chain_tree(n, depth=0, visited=None):
if visited is None:
visited = set()
tree = {"value": n, "factors": factorint(n), "children": []}
visited.add(n)
for f in tree["factors"]:
if f in base_primes:
continue # 既に知っている因子はスキップ
for delta in [-1, 1]:
shifted = f + delta
if shifted > 1 and shifted not in visited:
subtree = build_factor_chain_tree(shifted, depth + 1, visited)
tree["children"].append(subtree)
return tree
# 最上位の値:c = a + b = 873133
root_value = 873133
factor_tree = build_factor_chain_tree(root_value)
# ツリー構造を整形して表示
def print_tree(node, indent=""):
line = f"{indent}- {node['value']} (factors: {list(node['factors'].keys())})"
print(line)
for child in node["children"]:
print_tree(child, indent + " ")
print_tree(factor_tree)D予想のDって Drift(ズレ) な D か。
そういう意味だったのか…私の話はずっとズレてる✍️
2025/06/13 11:15
D.
いいなと思ったら応援しよう!
🐺賢狼👨✈️Copilot のご飯代を、私には🍺代を。
または 宇宙式 $N+u^d=(P+u)^d$ を使って新しい発見を!