平方数的和差的最小值

mathe 2002-05-11 08:17:04
输入正整数N,
要求输出
在1^2 , 2^2, 3^3,...,N^2每个数前加上正负号后求和的绝对值的即小值。
N<=1000000. :)

如果改成
1^3,2^3,3^3,...,N^3结论又如何?

...全文
330 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
mathe 2002-05-13
  • 打赏
  • 举报
回复
差不多了,已经走上正道了。
其实我几天前已经将答案放在:
http://members.lycos.co.uk/huidu/club/club.php?bbsid=b4bcc350aa4056b0
kbsoft(景乐) 已经将我证明的关键给贴上来了,不过看来没有人看出其有用性。

看来我用的方法还是复杂了一些。
其实上面的讨论已经给出了S(n+8)<=S(n)
那么如果S(n)<=1,必然有S(n+8)=S(n).
所以只要计算出S(6)到S(13)的值(都是0或1),那么就可以证明
n>=6时S(n)是0或1。

这道题目容易给人的错觉是好像可以用DP来解决,但是实际上用DP无论在空间或时间上都无法接受。而通过数学和计算机结合后的分析,问题就非常简单了。
而对于三次方,我们可以得出S(n+16)<=S(n),那么只要找到连续16个结果都是0或1的就行了。
liem 2002-05-13
  • 打赏
  • 举报
回复
情况已经清楚了
当n>=6时有:n=4k,4k+3结果为0,n=4k+1,4k+2结果为1。

根据上面的讨论,只要对n=4k+2进行证明就可以了。
记:S(m,n)(m<n)为m^2,(m+1)^2,...,n^2的代数和绝对值的最小值,s(n)=S(1,n)。则S(n,n+7)=0。
用归纳法证明s(4k+2)=1.已知k=1,k=2时有s(4k+2)=1(具体计算得出,见上面讨论),由于4k+2个数字中有2k+1个奇数,因此结果不能为零。设对k=1,2,...k0我们都有s(4*k+2)=1,则对k+1(k>=2),我们有:
S(4(k-1)+3,4(k+1)+2)=0
从而有:s(4(k+1)+2)=s(4(k-1)+2)+S(4(k-1)+3,4(k+1)+2)=1+0=1。
born_in70s 2002-05-12
  • 打赏
  • 举报
回复
N=10, 好像算不出1呀。
我用pencil and paper 的方法都不行呀。

55555..., mathe() 好像有点不讲道理呀。:-(...

xixi,just kiding !
mathe 2002-05-12
  • 打赏
  • 举报
回复
To starfish.
呵呵,没有这么简单啦,想仔细一些。
现在求的是最小的绝对值,而不是最大的绝对值。
one_add_one 2002-05-12
  • 打赏
  • 举报
回复
用广度可以非常快的得出结果。

但是对于N<=1000000需要几兆的空间:(
gauss 2002-05-12
  • 打赏
  • 举报
回复
算过一下,发现有这样的规律:

无论是n^2还是n^3还是n^a a为自然数

存在 uint N, st. 当n > N时

if( n == 4k + 1 or n == 4k + 2 ){
min == 1
}else{
min == 0
}

无证明。
kbsoft 2002-05-12
  • 打赏
  • 举报
回复
过计算机枚举,可以知道
1^2,2^2,...,12^2可以算出
0,2,4,6,...,2*13^2.
born_in70s 2002-05-12
  • 打赏
  • 举报
回复
我这完全没有利用计算机的能力 :-),看来需要另一种思路呢?
born_in70s 2002-05-12
  • 打赏
  • 举报
回复
OK. 的确对于4K+2 和4k+3 的情形我是猜测,不知大家有什么好办法?
liem 2002-05-12
  • 打赏
  • 举报
回复
如果是4k+3,我们在前面加上0^2,不就成了4(k+1)形式,结果为零
mathe 2002-05-12
  • 打赏
  • 举报
回复
1=-1^2+2^2+3^2+4^2-5^2-6^2-7^2+8^2-9^2+10^2
1=-1^2+2^2-3^2-4^2+5^2-6^2-7^2+8^2-9^2+10^2
LeeMaRS 2002-05-12
  • 打赏
  • 举报
回复
.......
我写了个搜索的程序,真的能得1的-.-b
看来我的算法是非常有问题.
我再想想..
LeeMaRS 2002-05-12
  • 打赏
  • 举报
回复
n=10 我好像也不能得1...
我得的是3...
LeeMaRS 2002-05-11
  • 打赏
  • 举报
回复
最近学动态规划学多了……一脑子都是动态规划

感觉上应该能用来解这道题.
mathe 2002-05-11
  • 打赏
  • 举报
回复
还是不对,比如n=10,结果就可以取1的。
born_in70s 2002-05-11
  • 打赏
  • 举报
回复
xixi, 我的意思就是对N>7的奇数结论成立呀。

N<7的情况都可以笔算呀。

mathe 2002-05-11
  • 打赏
  • 举报
回复
不对,
N=7,结果就可以取0 49-36-25+16-9+4+1

atlantis13579 2002-05-11
  • 打赏
  • 举报
回复
sorry,上面好现不行,我再想一下
atlantis13579 2002-05-11
  • 打赏
  • 举报
回复
我想应该是从N开始,N^2为正,把它减去(N-1)^2,....,N2^2,直到它变成负,然后加(N2-1)^2,.....,N3^2,直到它变成正,......一直下去直到1,按这个顺序加上正负号.
smile_yuzhe 2002-05-11
  • 打赏
  • 举报
回复
拜托能不能把问题说的明白点在1^2 , 2^2, 3^2,...,N^2每个数前加上正负号后求和,这不就是0吗?
还是1^2+2^2-3^2。。。
加载更多回复(1)

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧