王守恩 发表于 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。


zeroieme 发表于 2019-11-15 00:05:36

{{100,92,76,63,50,10},{71,45,33,20,15,13,9,6,4},17}//Function[{S1,S2,\},S1~Join~S2//{#//Sort//Reverse,Solve[{Subscript+Subscript==Total[#],Subscript-Subscript==\}]//First//Subscript/.#&}&]@@#&//Function[{AllDataList,Part1Total},Fold==Part1Total&]//If[#!={},#[],{#,Append[#,AllDataList[]]}&/@SearchingList//Join@@#&//GatherBy[#,Total][]&//SortBy[#,Total]&//{Select[#,Total[#]+Total]]<Part1Total&],#,(Select[#,Total[#]>Part1Total&])}&//Join]=={},{},#[]],Complement[#[],#[],#[]],If[#[]=={},{},#[]]]&]&],{{}},Range]]//SortBy[#,Abs-Part1Total]&]&//First//{#//Sort,Complement}&]@@#&//(Print]]-Total[#[]]];#)&

王守恩 发表于 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。
页: 1 2 [3]
查看完整版本: 两数组通过转移、交换数据使得差值最接近固定数值