等幂和数组

本文介绍了等幂和数组的概念,特别关注等幂和3元组,通过递推关系探讨了从3元组到6元组的构造方法。程序设计用于寻找和为s的等幂和3元组,举例展示了递推性质的应用,并提出进一步探索等幂和n元组的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果两组由不同的n(n>=3)个正整数组成的数组中,两数组的各个数之和相等,且两数组的各个数从2次幂之和、3次幂之和以至到n-1次幂之和均相等,则这两个数组称为等幂和n元组;

本节从探讨等幂和3元组至等幂和n(n<=6)元组,其中递推关系的建立与实施是重点,也是难点;


等幂和3元组

把6个互不相等的正整数a、b、c、d、e、f分成两组,若这两个数组具有以下两个相等特性:

  • a+b+c=d+e+f=s

  • a^2+b^2+c^2=d^2+e^2+f^2=s2

则把这两数组(a、b、c)与(d、e、f)(约定a< b< c,d< e< f,a< d)称为等幂和3元组;

例如(1,5,6)与(2,3,7)就是等幂和3元组:

  • 1+5+6=2+3+7=12

  • 1^2+5^2+6^2=2^2+3^2+7^2=62

给定正整数s,探求和为s的所有等幂和3元组;

1.说明:

设6个正整数存储于b数组b(1),……,b(6)中,同时约定: b(1)、b(2)、b(3)为一组,b(4)、b(5)、b(6)为另一组;

从键盘输入整数s,因6个不同正整数之和至少为21,即输入整数s>=11;

设置b(1)、b(2)与b(4)、b(5)循环,注意到b(1)+b(2)+b(3)=s,且b(1)< b(2)< b(3),因而b(1),b(2)循环取值为:

  • b(1):1~(s-3)/3,因为b(2)比b(1)至少大2

  • b(2):b(1)+1~(s-b(1)-1)/2,因为b(3)比b(2)至少大1

b(3)=s-b(1)-b(2);

设置b(4),b(5)循环基本同上,只是b(4)>b(1),因而b(4)起点为b(1)+1;

s2=b(1)*b(1)+b(2)*b(2)+b(3)*b(3),如果b(4)*b(4)+b(5)*b(5)+b(6)!=s2,则继续探索;

同时注意到两个3元组中若部分相同部分不同,不可能有和与平方和同时相等,因而可省略排除以上6个正整数中是否存在相等的检测;

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值