完美长方体,又称完美盒,指任意两顶点之间的距离(即棱长、面对角线和体对角线)都是整数的长方体。
即,整数a、b、c、d、e、f、g(a、b、c是棱长,d、e、f是面对角线长,g是体对角线长)同时满足以下4个等式:
那么,完美长方体存在吗?如果存在,请指出该棱长、面对角线和体对角线。
截至2015年5月,还没有找到任何完美长方体,亦未有人证明完美长方体不存在。经由电脑搜寻显示,若存在完美长方体,其中一个边长需大于3*10^12,且最小边长需大于1010。
现时只找到一些接近完美盒,例如其中一边是无理数,其他边和对角线均为整数的例子,如:棱长分别为672、153与104,其面对角线分别为3√(52777)、680与185,体对角线为697。
以下是一个用Python寻找“完美长方体”的例子。
import math
def gcd(a, b):
# 求最大公约数
while b:
a, b = b, a % b
return a
def is_perfect_rectangular_prism(a, b, c):
# 检查是否为部分完美长方体(边长和面对角线为整数)
diagonal_ab = math.isqrt(a ** 2 + b ** 2)
diagonal_ac = math.isqrt(a ** 2 + c ** 2)
diagonal_bc = math.isqrt(b ** 2 + c ** 2)
# 确保对角线也是整数,并且实际计算符合勾股定理
if diagonal_ab ** 2 == a ** 2 + b ** 2 and \
diagonal_ac ** 2 == a ** 2 + c ** 2 and \
diagonal_bc ** 2 == b ** 2 + c ** 2:
return True
return False
def find_perfect_rectangular_prism(limit):
for a in range(1, limit):
for b in range(a, limit):
for c in range(b, limit):
if is_perfect_rectangular_prism(a, b, c):
print(f"找到部分完美长方体:边长 ({a}, {b}, {c})")
# 设置搜索的边长范围
find_perfect_rectangular_prism(100)
此代码会寻找边长和面对角线为整数的部分完美长方体。如果要寻找完全满足空间对角线也是整数的完美长方体,还需要添加空间对角线的检查,算法会更复杂。
运行结果为满足条件的长方体边长。
各位可以用配置好点的电脑运行一下。
Comments | NOTHING