找回密码
 欢迎注册
楼主: aimisiyou

[讨论] 两数组通过转移、交换数据使得差值最接近固定数值

[复制链接]
发表于 2019-11-14 06:04:52 | 显示全部楼层
本帖最后由 王守恩 于 2019-11-14 12:55 编辑
王守恩 发表于 2019-11-12 19:23
我只能做具体的题目。
1,15个数的和=100+92+76+71+63+50+45+33+20+15+13+10+9+6+4=607
2,较小一组的和 ...


2楼说得好:说白了,就是将一组数据,取一部分出来,使之总和尽可能接近某个确定值。
15个数总和=100+92+76+71+63+50+45+33+20+15+13+10+9+6+4=607
较小确定值=(607-K)/2=(607-17)/2=295,较大确定值=607-295=312
主帖可分解为以下8道题。
1,15个数中取4个数,4个数的和=295(无解);
2,15个数中取5个数,5个数的和=295;
3,15个数中取6个数,6个数的和=295;
4,15个数中取7个数,7个数的和=295;
5,15个数中取4个数,4个数的和=312(无解);
6,15个数中取5个数,5个数的和=312;
7,15个数中取6个数,6个数的和=312;
8,15个数中取7个数,7个数的和=312。


毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-11-15 00:05:36 | 显示全部楼层
  1. {{100,92,76,63,50,10},{71,45,33,20,15,13,9,6,4},17}//Function[{S1,S2,\[CapitalDelta]},S1~Join~S2//{#//Sort//Reverse,Solve[{Subscript[x, 1]+Subscript[x, 2]==Total[#],Subscript[x, 1]-Subscript[x, 2]==\[CapitalDelta]}]//First//Subscript[x, 2]/.#&}&]@@#&//Function[{AllDataList,Part1Total},Fold[Function[{SearchingList,i},Select[SearchingList,Total[#]==Part1Total&]//If[#!={},#[[1;;1]],{#,Append[#,AllDataList[[i]]]}&/@SearchingList//Join@@#&//GatherBy[#,Total][[All,1]]&//SortBy[#,Total]&//{Select[#,Total[#]+Total[AllDataList[[i+1;;-1]]]<Part1Total&],#,(Select[#,Total[#]>Part1Total&])}&//Join[If[#[[1]]=={},{},#[[1,-1;;-1]]],Complement[#[[2]],#[[1]],#[[3]]],If[#[[3]]=={},{},#[[3,1;;1]]]]&]&],{{}},Range[Length[AllDataList]]]//SortBy[#,Abs[Total[#]-Part1Total]&]&//First//{#//Sort,Complement[AllDataList,#]}&]@@#&//(Print[Total[#[[2]]]-Total[#[[1]]]];#)&
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-11-15 01:16:34 | 显示全部楼层
本帖最后由 王守恩 于 2019-11-15 06:58 编辑
王守恩 发表于 2019-11-14 06:04
2楼说得好:说白了,就是将一组数据,取一部分出来,使之总和尽可能接近某个确定值。
15个数总和=100+ ...


2楼说得好:说白了,就是将一组数据,取一部分出来,使之总和尽可能接近某个确定值。
15个数总和=100+92+76+71+63+50+45+33+20+15+13+10+9+6+4=607
较小确定值=(607-K)/2=(607-17)/2=295,较大确定值=607-295=312
把15个数分成两组,总有1组的个数是1,2,3,4,5,6,7个数,
1,2,3,4个数明显无解,5,6,7个数的解还是蛮多的。
1,15个数中取5个数,5个数的和=295;
2,15个数中取6个数,6个数的和=295;
3,15个数中取7个数,7个数的和=295;
4,15个数中取5个数,5个数的和=312;
5,15个数中取6个数,6个数的和=312;
6,15个数中取7个数,7个数的和=312。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-20 01:54 , Processed in 0.039882 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表