35.四方定理

2024-06-11 23:52
文章标签 定理 35 四方

本文主要是介绍35.四方定理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上海市计算机学会竞赛平台 | YACSYACS 是由上海市计算机学会于2019年发起的活动,旨在激发青少年对学习人工智能与算法设计的热情与兴趣,提升青少年科学素养,引导青少年投身创新发现和科研实践活动。icon-default.png?t=N7T8https://www.iai.sh.cn/problem/477

题目背景

四方定理是数论中著名的一个定理,指任意一个自然数都可以拆成四个自然数的平方之和。例如:

题目描述

给定一个自然数 𝑛,请输出 𝑛 的所有四平方拆分方案。

输入格式

单个整数:表示 𝑛。

输出格式

若干行:每行四个由小到大排列的自然数,表示一种拆分方案。如果有多种方案,先输出首项较小的方案,对于首项相同的方案,先输出第二项较小的方案,其他情况以此类推。

数据范围

0≤𝑛≤50,000。

>>>>>>分割线>>>>>>>>>>>>>分割线>>>>>>>>>>>>>分割线>>>>>>>>>>>>>分割线>>>>>>>

思路

1.常规思路:四层嵌套循环,按最大值预估,会执行200*200*200*200=16亿多次,超时。

2.找出规律:a²+b²+c²+d²=n

  • 假设a=b=c=d,则a=sqrt(n/4), 范围缩小

  • 假设a=0,b=c=d,则b=sqrt(n/3), 范围进一步缩小

  • 假设a=b=0,c=d,则c=sqrt(n/2), 范围再进一步缩小

  • 假设a=b==c=0,则d=sqrt(n), 范围缩小

程序

#include <bits/stdc++.h>
using namespace std;
int n;
int main()
{cin>>n;for(int l=0;l<=sqrt(n/4);l++)for(int k=l;k<=sqrt(n/3);k++)for(int j=k;j<=sqrt(n/2);j++)for(int i=j;i<=sqrt(n);i++)	if(n==i*i+j*j+k*k+l*l)cout<<l<<" "<<k<<" "<<j<<" "<<i<<endl;return 0;
}

这篇关于35.四方定理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1052604

相关文章

uva 1342 欧拉定理(计算几何模板)

题意: 给几个点,把这几个点用直线连起来,求这些直线把平面分成了几个。 解析: 欧拉定理: 顶点数 + 面数 - 边数= 2。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#inc

『功能项目』战士的平A特效【35】

我们打开上一篇34武器的切换实例的项目, 本章要做的事情是在战士的每次按A键时在指定位置生成一个平A特效 首先将之前下载的技能拖拽至场景中 完全解压缩后重命名为AEffect 拖拽至预制体文件夹 进入主角动画的战士动画层级 双击第一次攻击 选择Animation 创建事件 创建的动画事件帧放在攻击动画挥剑指定处 命名为PerpetualAtt

Java验证辛钦大数定理

本实验通过程序模拟采集大量的样本数据来验证辛钦大数定理。   实验环境: 本实验采用Java语言编程,开发环境为Eclipse,图像生成使用JFreeChart类。   一,验证辛钦大数定理 由辛钦大数定理描述为: 辛钦大数定理(弱大数定理)  设随机变量序列 X1, X2, … 相互独立,服从同一分布,具有数学期望E(Xi) = μ, i = 1, 2, …, 则对于任意正数ε ,

CPC23三 K.(Lucas定理)

K.喵喵的神·数 Time Limit: 1 Sec Memory Limit: 128 MB Description 喵喵对组合数比较感兴趣,并且对计算组合数非常在行。同时为了追求有后宫的素质的生活,喵喵每天都要研究质数。 我们先来复习一下什么叫做组合数。对于正整数P、T 然后我们再来复习一下什么叫质数。质数就是素数,如果说正整数N的约数只有1和它本身,N

NoSQL数据库的35个应用场景

现在我们站在各个用例的角度上来考虑那种系统适合于这些用例。   你的意见是?   首先,我们要纵览各种数据模型。这些模型的分类方法来自于Emil Eifrem和NoSQL databases。   文档数据库   源起:受Lotus Notes启发。   数据模型:包含了key-value的文档集合   例子:CouchDB, MongoDB   优点:数据模型自然,编

量化交易面试:什么是中心极限定理?

中心极限定理(Central Limit Theorem, CLT)是概率论和统计学中的一个重要定理,它描述了在一定条件下,独立随机变量的和的分布趋向于正态分布的性质。这个定理在量化交易和金融分析中具有重要的应用价值。以下是对中心极限定理的详细解释: 基本概念: 中心极限定理指出,当我们从一个具有任意分布的总体中抽取足够大的样本时,样本均值的分布将近似于正态分布,无论原始总体的分布是什么样的。

MySQL-35个DQL练手题(难)

第1题 取得每个部门最高薪水的人员名称 第一步:取得每个部门最高薪水 select max(sal) topsal, deptno from emp group by deptno; 第二步:将上面第一步的查询结果当做一张临时表t,进行表连接,条件是:t.deptno=e.deptno and t.maxsal=e.sal select e.ename, t.* from emp e

中国剩余定理和扩展中国剩余定理(模板)

给你一元线性同余方程组,如下: 其中,当  ,  , ... ,  两两互质的话就是中国剩余定理 , 不互质的话就是扩展中国剩余定理。 给出中国剩余定理的计算过程和扩展中国剩余定理的推理过程: #include<bits/stdc++.h>using namespace std;#define int long long#define endl '\n'#define

等式(数论/唯一分解定理)

链接: https://www.nowcoder.com/acm/contest/90/F 来源:牛客网 题目描述 给定n,求1/x + 1/y = 1/n (x<=y)的解数。(x、y、n均为正整数) 输入描述: 在第一行输入一个正整数T。接下来有T行,每行输入一个正整数n,请求出符合该方程要求的解数。(1<=n<=1e9) 输出描述: 输出符合该方程要求的解数。

数论 - 算数基本定理的运用 --- nefu 118 : n!后面有多少个0

题目链接: http://acm.nefu.edu.cn/JudgeOnline/problemshow.php   Mean:   略。 analyse:  刚开始想了半天都没想出来,数据这么大,难道是有什么公式? 首先我们要知道一点:n!里面所有的0都是2*5得来的,而且不管怎样2的数量一定是>5的数量,所以我们只需要考虑有多少个5就可。 后面也是看了解题报告才知道有