全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
3254 19
2018-09-12
悬赏 500 个论坛币 已解决

数据如下:

A <- c(11611.60,35000.00, 15527.20, 52972.00, 8434.00, 15000.00, 17908.00, 9211.80, 5850.00, 11663.60, 11674.00, 11206.00, 14852.00, 14333.80, 30500.00, 26952.00, 18925.52, 18472.00, 47762.48)

B <- c(11663.60,35000.00,15527.20, 52972.00, 8434.40, 15000.00, 17908.00, 9211.80, 17000.00, 10500.00,41000.00,13772.00, 5288.00, 4700.00, 4352.00, 14333.80, 26952.00, 11611.60, 11674.00, 3580.00,11206.00,3400.00,4850.00,12672.00)

我需要 找出  向量A 中的数 是 向量B 中的那几个数之和(也可以是近似值或是B中几个数相加之和 约等于A 中的数);  求解 ?


最佳答案

fdsasdfddsa 查看完整内容

本质上是个用判断条件来加速的遍历算法,学过堆栈的话容易理解
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2018-9-12 16:50:26
fcfc2013 发表于 2018-9-19 23:00
惭愧!  看了半天 没看懂
本质上是个用判断条件来加速的遍历算法,学过堆栈的话容易理解
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-9-15 00:33:28
fcfc2013 发表于 2018-9-12 16:50
数据如下:

A
此贴无大神理会?
我的思路:<br>
二列数据编号,依次比较 <- A$1 >= B$1 ,再 将比较后比A$1 小的 数(应该是个向量) <br>
二二想加<br>
sun(B$1,B$2)<br>
sun(B$2,B$3)<br>
  再比较。  <br>
B$11 == A1;<br>
B$12 == A1,<br>
或是: 将B列数据 想加后得到一个矩阵,查找矩阵中数 == A列中的数, 如有相等,返回 那个数 是B列中那几个数相加。
微信截图_20180915124755.png
附件列表
1536942811394519.jpeg

原图尺寸 45.62 KB

1536942811394519.jpeg

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-9-17 20:48:02
用堆栈做,写得
复制代码

自己封一个函数调用吧
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-9-17 21:02:33
思路上是把B里的数按顺序压进栈里,每次都计算差值,并和最小差异比较。如果有一个数压进去之后超过目标值,那后续的值都不用试了只会越来越远,所以把这个数扔了换下一个数;如果没有超过目标值,就保留目前堆栈并把下一个数压进栈里。如果是最后一个数被压进了栈里,就把倒数第二个数扔了换成下一个数。
直到栈里唯一的一个数是最末的那个数为止,结束,输出结果
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-9-19 23:00:47
fdsasdfddsa 发表于 2018-9-17 20:48
用堆栈做,写得

自己封一个函数调用吧
  惭愧!  看了半天 没看懂
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群