数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 977|回复: 16

送给王守恩:完美长方体生成器

[复制链接]
发表于 2026-7-22 12:19 | 显示全部楼层 |阅读模式

       代码输入前置,仅仅改变m,n的数值即可生成完美“欧拉砖 ”   ,有幸遇见砖的体对角线是整数,哈哈,你赢麻啦!哈哈哈…祝你好运!      



import math
from typing import Dict, Any

# ===================== 顶层自定义输入参数区(直接修改 m、n 即可一键重算) =====================
m = 2
n = 1
# ==========================================================================================

class EulerBrickGenerator:
    """
    【嫦娥灵枢合组】欧拉砖参数化生成器(鲍方程母核构造版)
    核心纲领:几何为本体,代数为末体
    构造来源:基于自研P/Q锁死母式迭代生成三维欧拉砖整数族
    输出结构:全部数据封装进self.result字典,支持打印、JSON导出、入库、批量遍历扫描
    """

    def __init__(self, m: int, n: int):
        # 入参强校验:必须正整数且 m > n
        if not (isinstance(m, int) and isinstance(n, int) and m > n > 0):
            raise ValueError(f"参数约束 m > n > 0 且均为正整数,当前输入 m={m}, n={n}")

        self.m = m
        self.n = n

        # 1. 底层母式纯整数运算,全程无浮点中间变量,规避精度漂移
        m2 = m * m
        n2 = n * n
        mn = m * n

        P = 10 * m2 * n2 - 3 * m2 ** 2 - 3 * n2 ** 2
        Q = m2 ** 2 - n2 ** 2

        # 三维棱长生成式(自带绝对值保证正边长)
        x = abs(2 * mn * P)
        y = abs(8 * mn * Q)
        z = abs((m2 - n2) * (m2 + 4 * mn + n2) * (m2 - 4 * mn + n2))

        # 三组面对角平方和
        sum_xy = x * x + y * y
        sum_xz = x * x + z * z
        sum_yz = y * y + z * z
        sum_xyz = sum_xy + z * z

        # 整数开方核验(math.isqrt仅返回整数部分,再二次平方回验是否完全平方数)
        r1 = math.isqrt(sum_xy)
        r2 = math.isqrt(sum_xz)
        r3 = math.isqrt(sum_yz)

        # 代数恒等式兜底断言:本构造必然三条面对角为整数,断言用于捕获极端异常逻辑bug
        assert r1 * r1 == sum_xy, f"母式构造异常:xy面对角非完全平方,sum_xy={sum_xy}"
        assert r2 * r2 == sum_xz, f"母式构造异常:xz面对角非完全平方,sum_xz={sum_xz}"
        assert r3 * r3 == sum_yz, f"母式构造异常:yz面对角非完全平方,sum_yz={sum_yz}"

        # 三边最大公约数,用于判断是否为本原解
        common_gcd = math.gcd(x, math.gcd(y, z))
        is_body_integer = (math.isqrt(sum_xyz) ** 2 == sum_xyz)

        # 2. 结构化数据封装:全部结果收拢进self.result字典,便于对接外部数据管道
        self.result: Dict[str, Any] = {
            "params": (m, n),
            "edges": (x, y, z),
            "face_diagonals": (r1, r2, r3),
            "body_diagonal_sq": sum_xyz,
            "is_body_integer": is_body_integer,
            "is_primitive": (common_gcd == 1),
            "gcd": common_gcd
        }

    def show(self):
        """控制台格式化打印归档结果"""
        res = self.result
        x, y, z = res["edges"]
        r1, r2, r3 = res["face_diagonals"]
        body_sq = res["body_diagonal_sq"]

        print("=" * 65)
        print("【嫦娥灵枢 · 欧拉砖参数化生成归档输出】")
        print("=" * 65)
        print(f"生成母参数    : m = {res['params'][0]}, n = {res['params'][1]}")
        print(f"本原属性标记  : {'✅ 本原欧拉砖' if res['is_primitive'] else f'❌ 派生倍数解 (整体公因子={res["gcd"]})'}")
        print("-" * 65)
        print(f"三维棱长 (x,y,z): ({x}, {y}, {z})")
        print(f"xy平面面对角线 : {r1}")
        print(f"xz平面面对角线 : {r2}")
        print(f"yz平面面对角线 : {r3}")
        print("-" * 65)
        print(f"空间体对角线平方值 : {body_sq}")
        if res["is_body_integer"]:
            print(f"体对角线判定结果 : ✅ 整数闭合【命中完美长方体!重大发现】")
        else:
            print(f"体对角线判定结果 : ❌ 无理数(标准欧拉砖构型)≈ {math.sqrt(body_sq):.12f}")
        print("=" * 65)

if __name__ == "__main__":
    brick = EulerBrickGenerator(m, n)
    brick.show()
发表于 2026-7-22 17:23 | 显示全部楼层
鉴于风花飘飘——鲍丰武在论坛做的都是世人所不能为不能解的,因此,即使是做错了或者闹了笑话,风花飘飘——鲍丰武仍然是英雄,,,
回复 支持 1 反对 0

使用道具 举报

发表于 2026-8-11 07:18 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2026-8-11 07:31 | 显示全部楼层
      —— 悬赏 ——

"完美长方体" = 4 条对角线 = 4 条线段 = 8 个点 = "完美长方体" 8 个顶点。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2026-8-11 20:23 | 显示全部楼层
王守恩 发表于 2026-8-11 07:31
—— 悬赏 ——

"完美长方体" = 4 条对角线 = 4 条线段 = 8 个点 = "完美长方体" 8 个顶点。

总共7条线段,想满足任意6条线段是整数,这个很简单。
我给的代码是“体对角线不是整数(是一个整数乘以√2)”,这个体对角=√2k,k是整数,这√2无法消去。
回复 支持 反对

使用道具 举报

发表于 2026-8-12 09:41 | 显示全部楼层
风花飘飘 发表于 2026-8-11 20:23
总共7条线段,想满足任意6条线段是整数,这个很简单。
我给的代码是“体对角线不是整数(是一个整数乘以 ...

      —— 悬赏 ——无路可走了,  才走这条路。——题目没出好,  改一改。

"完美长方体" = 4 条对角线 = 4 条线段 = 8 个点 = 恰好是 "完美长方体" 8 个顶点。——可能吗?
回复 支持 反对

使用道具 举报

发表于 2026-8-12 09:51 | 显示全部楼层
      —— 悬赏 ——目标:  不存在 "完美长方体"。—— 先扫一扫外围。

"完美长方体" 。 体对角线 = 整数。则棱长 ≠ 17。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2026-8-12 11:58 | 显示全部楼层
王守恩 发表于 2026-8-12 09:51
—— 悬赏 ——目标:  不存在 "完美长方体"。—— 先扫一扫外围。

"完美长方体" 。 体对角线 = 整 ...




完美长方体:
4 条对角线 加3条棱长共7 条整数线段 ,8 个点 。
目前我能做到的是任意6条线段是整数,
我选择的是体对角线是√2k(带着系数√2),其它全部都是整数。





点评

选择体对角线是整数——会简单些。  发表于 2026-8-12 12:01
回复 支持 反对

使用道具 举报

发表于 2026-8-12 11:58 | 显示全部楼层

      —— 悬赏 ——目标:  不存在 "完美长方体"。—— 先扫一扫外围。

"完美长方体" 。 体对角线 = 整数。则棱长不可能两两互质。
回复 支持 反对

使用道具 举报

发表于 2026-8-12 12:50 | 显示全部楼层
—— 悬赏 ——目标:  不存在 "完美长方体"。—— 先扫一扫外围。{3 个数} = 棱长。满足体对角线 = 整数。

{{{2, 3, 6}}, {}, {{1, 4, 8}}, {{2, 6, 9}}, {}, {{2, 10, 11}}, {{3, 4, 12}, {8, 9, 12}}, {}, {{2, 5, 14}}, {{6, 10, 15}}, {{4, 13, 16}, {8, 11, 16}, {12, 15, 16}}, {}, {{1, 6, 18}, {3, 14, 18}, {6, 13, 18}}, {{4, 8, 19}}, {{4, 5, 20}, {9, 12, 20}}, {{12, 16, 21},
{14, 18, 21}}, {{3, 6, 22}, {6, 21, 22}, {7, 14, 22}}, {{2, 14, 23}}, {{3, 16, 24}, {11, 12, 24}}, {{2, 10, 25}, {8, 20, 25}}, {{2, 7, 26}, {15, 18, 26}, {19, 22, 26}}, {{6, 14, 27}, {8, 24, 27}}, {{3, 24, 28}, {4, 17, 28}, {7, 16, 28}, {12, 21, 28}},
{{2, 26, 29}, {14, 22, 29}, {20, 28, 29}}, {{1, 18, 30}, {5, 6, 30}, {6, 17, 30}, {18, 25, 30}}, {{12, 24, 31}}, {{1, 8, 32}, {4, 7, 32}, {9, 24, 32}}, {{4, 24, 33}, {6, 10, 33}}, {{2, 19,34}, {13, 14, 34}, {18, 27, 34}, {22, 31, 34}}, {{4, 28, 35},
{10, 14, 35}}, {{3, 8, 36}, {4, 33, 36}, {9, 32, 36}, {12, 31, 36}, {23, 24, 36}, {27, 28, 36}}, {{12, 36, 37}, {16, 20, 37}}, {{1, 34, 38}, {6, 27, 38}, {9, 18, 38}, {14, 31, 38}, {18, 21, 38}, {34, 37, 38}}, {{2, 18, 39}, {4, 12, 39}}, {{8, 19, 40},
{13, 16, 40}, {15, 24, 40}, {25, 32, 40}}, {{12, 24, 41}}, {{2, 9, 42}, {2, 21, 42}, {6, 7, 42}, {6, 35, 42}, {6, 41, 42}, {11, 18, 42}, {14, 39, 42}, {19, 30, 42}}, {{6, 18, 43}, {24, 36, 43}, {26, 38, 43}}, {{5, 8, 44}, {12, 27, 44}, {17, 32, 44},
{23, 28, 44}, {35, 40, 44}}, {{18, 26, 45}, {20, 36, 45}}, {{1, 22, 46}, {2, 43, 46}, {3, 30, 46}, {14, 17, 46}, {22, 37, 46}, {30, 45, 46}}, {{4, 32, 47}, {16, 28, 47}}, {{4, 9, 48}, {8, 21, 48}, {11, 36, 48}, {12, 19, 48}, {20, 39, 48}, {24, 29, 48},
{25, 36, 48}, {33, 44, 48}, {40, 45, 48}}, {{2, 14, 49}, {8, 28, 49}, {18, 42, 49}}, {{1, 10, 50}, {5, 38, 50}, {9, 30, 50}, {10, 37, 50}, {15, 42, 50}, {30, 33, 50}, {38, 41, 50}}, {{8, 12, 51}, {10, 18, 51}, {18, 46, 51}, {26, 42, 51}, {32, 48, 51}},
{{4, 23, 52}, {11, 44, 52}, {15, 36, 52}, {16, 17, 52}, {21, 24, 52}}, {{2, 34, 53}, {4, 44, 53}, {22, 26, 53}}, {{3, 10, 54}, {3, 46, 54}, {6, 23, 54}, {9, 22, 54}, {10, 45, 54}, {19, 42, 54}, {22, 33, 54}, {30, 35, 54}, {42, 47, 54}}, {{22, 46, 55},
{34, 38, 55}, {40, 44, 55}}, {{3, 24, 56}, {5, 40, 56}, {7, 8, 56}, {12, 21, 56}, {16, 37, 56}, {20, 35, 56}, {20, 55, 56}, {28, 29, 56}, {32, 49, 56}, {52, 53, 56}}, {{6, 14, 57}, {12, 44, 57}, {20, 24, 57}, {28, 36, 57}, {46, 54, 57}}, {{6, 9, 58},
{6, 33, 58}, {11, 22, 58}, {15, 30, 58}}, {{2, 22, 59}, {12, 48, 59}, {16, 32, 59}}, {{5, 48, 60}, {7, 24, 60}, {12, 59, 60}, {27, 40, 60}, {32, 51, 60}, {36, 55, 60}}, {{4, 32, 61}, {16, 28, 61}, {22, 58, 61}}, {{2, 11, 62}, {2, 61, 62}, {5, 10, 62},
{10, 41, 62}, {19, 58, 62}, {25, 34, 62}, {35, 50, 62}, {39, 54, 62}}, {{2, 54, 63}, {6, 22, 63}, {8, 36, 63}, {14, 18, 63}, {24, 28, 63}, {34, 42, 63}, {48, 56, 63}}, {{8, 49, 64}, {12, 33, 64}, {15, 60, 64}, {16, 47, 64}, {23, 44, 64}, {24, 57, 64},
{28, 41, 64}, {39, 48, 64}, {43, 52, 64}}, {{20, 44, 65}, {30, 42, 65}, {52, 64, 65}}, {{3, 26, 66}, {6, 43, 66}, {9, 62, 66}, {11, 42, 66}, {18, 19, 66}, {18, 47, 66}, {21, 38, 66}, {26, 57, 66}, {27, 34, 66}, {30, 55, 66}, {33, 38, 66}, {57, 62, 66}},
{{4, 16, 67}, {8, 64, 67}, {12, 36, 67}, {32, 56, 67}, {42, 66, 67}}, {{1, 44, 68}, {3, 36, 68}, {4, 11, 68}, {16, 41, 68}, {24, 27, 68}, {24, 45, 68}}, {{6, 38, 69}, {12, 32, 69}, {18, 34, 69}, {30, 58, 69}, {42, 50, 69}, {48, 56, 69}}, {{7, 26, 70},
{13, 50, 70}, {14, 23, 70}, {15, 42, 70}, {21, 30, 70}, {26, 65, 70}, {30, 33, 70}, {35, 38, 70}, {49, 50, 70}, {63, 66, 70}}, {{10, 22, 71}, {18, 54, 71}, {24, 48, 71}}, {{1, 12, 72}, {4, 27, 72}, {4, 45, 72}, {8, 9, 72}, {13, 24, 72}, {16, 63, 72},
{16, 69, 72}, {21, 40, 72}, {25, 60, 72}, {33, 56, 72}, {36, 61, 72}, {39, 52, 72}, {44, 69, 72}, {51, 64, 72}}, {{6, 54, 73}, {10, 14, 73}, {40, 64, 73}, {42, 66, 73}}, {{6, 27, 74}, {7, 10, 74}, {10, 65, 74}, {18, 21, 74}, {18, 33, 74}, {31, 58, 74},
{46, 47, 74}, {58, 59, 74}}, {{6, 58, 75}, {22, 54, 75}, {24, 32, 75}}, {{1, 28, 76}, {3, 12, 76}, {8, 53, 76}, {13, 52, 76}, {16, 23, 76}, {25, 68, 76}, {32, 43, 76}, {32, 65, 76}}, {{4, 52, 77}, {14, 38, 77}, {18, 66, 77}, {22, 34, 77}, {28, 44, 77},
{42, 54, 77}, {56, 68, 77}}, {{5, 54, 78}, {6, 11, 78}, {6, 67, 78}, {6, 73, 78}, {9, 46, 78}, {13, 66, 78}, {18, 71, 78}, {21, 50, 78}, {39, 62, 78}, {45, 50, 78}, {46, 57, 78}, {51, 74, 78}, {54, 65, 78}, {61, 66, 78}}, {{8, 16, 79}, {14, 58, 79},
{30, 78, 79}, {38, 46, 79}, {68, 76, 79}}, {{1, 68, 80}, {15, 36, 80}, {20, 43, 80}, {23, 64, 80}, {32, 35, 80}}, {{2, 18, 81}, {8, 36, 81}, {12, 52, 81}, {24, 28, 81}, {32, 72, 81}, {42, 70, 81}, {48, 76, 81}}, {{2, 29, 82}, {6, 39, 82}, {11, 74, 82},
{13, 26, 82}, {19, 22, 82}, {26, 49, 82}, {31, 46, 82}, {46, 59, 82}, {58, 71, 82}}, {{2, 26, 83}, {14, 22, 83}, {20, 80, 83}, {32, 76, 83}, {52, 64, 83}, {54, 66, 83}}, {{3, 56, 84}, {5, 12, 84}, {7, 48, 84}, {8, 69, 84}, {9, 28, 84}, {12, 47, 84},
{17, 24, 84}, {21, 52, 84}, {23, 72, 84}, {27, 64, 84}, {29, 48, 84}, {32, 81, 84}, {33, 68, 84}, {35, 60, 84}, {36, 43, 84}, {49, 72, 84}}, {{6, 42, 85}, {8, 80, 85}, {14, 70, 85}, {20, 32, 85}}, {{2, 13, 86}, {2, 49, 86}, {5, 70, 86}, {14, 47, 86},
{17, 46, 86}, {27, 30, 86}, {31, 38, 86}, {38, 59, 86}, {46, 53, 86}, {70, 77, 86}}, {{4, 72, 87}, {4, 84, 87}, {6, 26, 87}, {6, 62, 87}, {24, 68, 87}, {36, 76, 87}, {40, 60, 87}, {42, 46, 87}, {66, 86, 87}, {80, 84, 87}}, {{4, 77, 88}, {8, 29, 88},
{11, 28, 88}, {12, 39, 88}, {13, 76, 88}, {16, 55, 88}, {24, 33, 88}, {40, 41, 88}, {43, 64, 88}, {53, 56, 88}, {63, 84, 88}, {69, 72, 88}}, {{6, 18, 89}, {20, 52, 89}, {22, 82, 89}, {58, 62, 89}, {64, 68, 89}}, {{3, 50, 90}, {9, 10, 90}, {10, 57, 90},
{14, 27, 90}, {18, 55, 90}, {21, 22, 90}, {22, 45, 90}, {34, 63, 90}, {47, 54, 90}, {50, 81, 90}, {75, 82, 90}}, {{14, 62, 91}, {26, 58, 91}, {28, 68, 91}, {36, 48, 91}, {42, 78, 91}}, {{4, 13, 92}, {8, 11, 92}, {16, 89, 92}, {21, 36, 92}, {25, 44, 92},
{31, 40, 92}, {44, 79, 92}, {49, 76, 92}, {56, 71, 92}, {56, 91, 92}, {57, 84, 92}, {60, 75, 92}}, {{6, 74, 93}, {14, 42, 93}, {16, 36, 93}, {24, 80, 93}, {24, 92, 93}, {34, 66, 93}, {36, 44, 93}, {36, 88, 93}}, {{2, 31, 94}, {2, 59, 94}, {3, 42, 94},
{11, 58, 94}, {15, 90, 94}, {17, 26, 94}, {26, 53, 94}, {37, 46, 94}, {42, 81, 94}, {50, 83, 94}, {54, 87, 94}, {63, 66, 94}, {67, 70, 94}}, {{6, 90, 95}, {8, 44, 95}, {10, 26, 95}, {12, 60, 95}}, {{3, 80, 96}, {3, 92, 96}, {7, 12, 96}, {8, 51, 96},
{12, 29, 96}, {16, 27, 96}, {19, 48,  96}, {27, 44, 96}, {27, 88, 96}, {28, 75, 96}, {33, 92, 96}, {35, 72, 96}, {36, 37, 96}, {53, 60, 96}, {77, 84, 96}}, {{4, 40, 97}, {12, 96, 97}, {30, 54, 97}, {48, 84, 97}, {56, 64, 97}, {58, 94, 97}, {74, 82, 97}},
{{1, 14, 98}, {7, 74, 98}, {9, 42, 98}, {14, 73, 98}, {18, 39, 98}, {21, 78, 98}, {22, 71, 98}, {25, 70, 98}, {30, 75, 98}, {35, 86, 98}, {41, 62, 98}, {42, 69, 98}, {50, 55, 98}, {61, 70, 98}, {69, 78, 98}, {86, 91, 98}}, {{2, 66, 99}, {12, 16, 99},
{12, 44, 99}, {12, 88, 99}, {18, 22, 99}, {28, 36, 99}, {38, 54, 99}, {52, 72, 99}, {70, 90, 99}}, {{1, 32, 100}, {8, 31, 100}, {20, 79, 100}, {21, 72, 100}, {40, 71, 100}, {40, 91, 100}, {59, 80, 100}, {63, 84, 100}}, {{2, 46, 101}, {26, 38, 101},

代码——p = {}; Table[q = DeleteCases[Table[If[IntegerQ[Sqrt[a^2 + b^2 + c^2]] && GCD[a, b, c] == 1, {a, b, c},Nothing], {a, n}, {b, a + 1, n}, {c, b + 1, n}] // Flatten[#, 2] &, {}]; r = Complement[q, p]; p = q; r, {n, 6, 99}]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2026-9-15 06:04 , Processed in 0.115128 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表