跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C++算法

C++ 毕达哥拉斯四元组检测算法

介绍勾股定理四元组(a²+b²+c²=d²)的定义及几何意义,阐述本原勾股四元组概念与勒贝格恒等式生成方法,并提供 C++ 代码实现检测功能,分析时间与空间复杂度均为 O(1)。

laoliangsh发布于 2026/3/27更新于 2026/5/2922 浏览
C++ 毕达哥拉斯四元组检测算法

给定四个点,检查它们是否构成勾股定理四元组。勾股定理四元组定义为由整数 a、b、c、d 组成的元组,满足 a²+b²+c²=d²。它们基本上是丢番图方程的解。在几何解释中,它表示一个边长为整数 |a|、|b|、|c| 且空间对角线为 |d| 的长方体。

这里所示的长方体边是勾股四元组的例子。当它们的最大公约数为 1 时,勾股四元组就是本原勾股四元组。每个勾股四元组都是一个本原勾股四元组的整数倍。我们可以通过公式生成一组 a 为奇数的本原勾股四元组:

a = m² + n² - p² - q² b = 2(mq + np) c = 2(nq - mp) d = m² + n² + p² + q²

其中 m、n、p、q 为最大公约数为 1 的非负整数,且 m + n + p + q 为奇数。因此,所有本原毕达哥拉斯四元组都可用勒贝格恒等式刻画。

(m² + n² + p² + q²)² = (2mq + 2nq)² + 2(nq - mp)² + (m² + n² - p² - q²)²

示例代码:

// C++ code to detect Pythagorean Quadruples.
#include <bits/stdc++.h>
using namespace std;

// function for checking
bool pythagorean_quadruple(int a, int b, int c, int d)
{
    int sum = a * a + b * b + c * c;
    if (d * d == sum)
        return true;
    else
        return false;
}

// Driver Code
int main()
{
    int a = 1, b = 2, c = 2, d = 3;
    if (pythagorean_quadruple(a, b, c, d))
        cout << "Yes" << endl;
    else
        cout << "No" << endl;
}

输出: Yes

时间复杂度:O(1) 辅助空间:O(1)

参考 Wiki mathworld

  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Spring Boot 中 MultipartFile 转 File 对象的四种实现方案
  • Ubuntu 20.04 本地部署 Ollama 及 Open WebUI 图形界面指南
  • C++ 模板编程入门:函数与类模板详解
  • 使用 cpolar 内网穿透实现 OpenClaw 公网访问
  • AI 大模型核心技术:CoT 思维链与 ReAct 推理行动
  • macOS 本地部署 OpenClaw 智能体框架指南
  • 网络安全 SRC 漏洞挖掘实战指南与学习路径
  • JavaScript 错误处理:深入分析 Uncaught (in promise) error
  • Python 数据分析实战指南:从数据清洗到可视化报告
  • 零基础与其他行业转行是否适合学习 Python
  • C 语言多线程与并发编程:提高程序执行效率
  • ESP-Drone 开源无人机平台 5 步快速入门
  • Cursor 接入 DeepSeek V3.2 与 MiniMax M2 模型配置指南
  • 埃斯顿工业机器人仿真与编程快速入门
  • 基于 FastGPT 与 MCP 协议构建工具增强型智能体
  • Python 爬虫入门基础教程:流程、模块与框架详解
  • OpenClaw 安全最佳实践:保护 AI 与数据
  • IntelliJ IDEA 插件开发:搭建自建插件仓库
  • 大模型(LLM)在企业中的典型应用场景
  • C++ 树形动态规划:从原理到实战深度解析

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online