回 帖 发 新 帖 刷新版面

主题:[讨论]通过一个序列求另一个序列

这个问题是数学问题。但的确是本人在程序中碰到的。请各位帮忙啦。

有两个序列:
No....1...2...3...4...5...6...7...8...9..10..11......
A:....2...5...1...3...9...5...7...3..12...8..10......
B:.......................25..30..28..39..44..45......

说明:
A序列中的元素为有序随机的,并且[color=FF0000]未知[/color]。
B序列中的元素为A序列中每6个元素的和。即:
    Bi=SUM(Ai:A(i+5));
    B1=25=A1+A2+A3+A4+A5+A6
    B2=30=A2+A3+A4+A5+A6+A7
    B中的元素是[color=FF0000]已知[/color]的。
现在情况是已知B序列,求出A序列。请各位兄弟姐妹帮忙啦~

回复列表 (共4个回复)

沙发

由数组B求A,结果好像不是唯一的。
看你给的例子
B[2]-B[1]=30-25=5可以得出:A[7]-A[1]=7-2=5
其他可以类推。
这样,只要A[1]到A[6]的任意组合,其和是B[1]=25就可以了,从A[7]开始往后,可以由上面得到的差值得到。
以下只是把A[1]到A[6]部分颠倒下位置,就可得到2个不同的数组A,B不变
No....1...2...3...4...5...6...7...8...9..10..11......
A:....9...3...1...5...2...5...14...1..12...20..3......
B:........................25..30..28..39...44..45......

No....1...2...3...4...5...6...7...8...9..10..11......
A:....2...5...9...3...1...5...7...3..20...8...2......
B:.......................25..30..28..39..44..45......

板凳

穷举出A[1]到A[6]的所有可能组合,使其和为B[1]的值,就可以得到所有的解。

3 楼


我在topcoder上见过一道类似的题目,不过是三个位的数字和。

4 楼

funy problem. up

我来回复

您尚未登录,请登录后再回复。点此登录或注册