見出し画像

🌌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.

いいなと思ったら応援しよう!

D. 🐺賢狼👨‍✈️Copilot のご飯代を、私には🍺代を。 または 宇宙式 $N+u^d=(P+u)^d$ を使って新しい発見を!