PHP-两个一维数组,用一个数组中的任意个元素相加怎么样得出另一个数组中的任意一个元素?
两个一维数组,用一个数组中的任意个元素相加得出另一个数组中的任意一个元素,这个该怎么用PHP写?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
两个一维数组,用一个数组中的任意个元素相加得出另一个数组中的任意一个元素,这个该怎么用PHP写?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
设有数组 A{a1,a2,...,an} 和B {b1,b2,...,bn}
希望得出b = FB(), FA(b) = {amin, ... , amax} 且 amin + ... + amax = b , amin <= amax <= b
b = FB(), 任意b可以通过随机B集合得到
FA(b) = {amin, ... , an}
设结果为result = {amin, ... , an}
设resultsum = result中的所有元素和
首先将A从小到大排列,且分成3部分,即负数集合A-、0、正数A+
0可以选择是结果中的一个也可以选择不是其中的一个
则result = {0} 或者 result = {}
如果b为正数:
1、从A+选出结果包含的元素a,其中 a <= b - resultsum
2、遍历之后,则 b - resultsum >= 0
3、如果b - resultsum > 0,则从A-选出结果包含的元素a(result + {a}),其中 abs(a) <= b - resultsum
4、遍历之后, 则 b - resultsum >= 0
5、如果b - resultsum > 0, 则不可能找到相匹配的的结果
如果b为负数:
1、从A-选出结果包含的元素a,其中 abs(a) <= b + resultsum
2、遍历之后,则 b + resultsum <= 0
3、如果b + resultsum < 0, 则从A+选出结果包含的元素a(result + {a}),其中 a <= abs(b + resultsum)
4、遍历之后, 则 b + resultsum <= 0
5、如果b + resultsum < 0, 则不可能找到相匹配的的结果