免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5807 | 回复: 2

[数值计算] 求某个组合的和最接近某个值 [复制链接]

论坛徽章:
0
发表于 2022-03-17 11:09 |显示全部楼层
本帖最后由 zhengwei_zw 于 2022-03-17 11:18 编辑

8,600.00
94.05
72.00
166.05
8,600.00
494.31
101.67
72.00
8,600.00
267.36
4,022.58
4,300.00
177.53
737.00
508.33
72.00
36.00
7.20
3,966.09
10,246.02
986.72
8,600.00
2,772.45
1,490.02
477.38
340.80
101.67
72.00
3,088.60
10.17
7.20
142.00
205.00
60.20
150.00
10.80
391.53
4,300.00

377.27

39个数字
需要组合测试,接近17095.00的组合排序



论坛徽章:
0
发表于 2022-03-17 11:17 |显示全部楼层
比如a+b+c=17094.9  a+b+d=17093  a+c+e=17095.1 c+e+f=17094.87
然后把上面的组合和值打印出来

论坛徽章:
25
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之八一
日期:2018-07-05 10:34:09黑曼巴
日期:2018-07-06 15:19:5015-16赛季CBA联赛之佛山
日期:2018-08-03 13:19:3315-16赛季CBA联赛之山西
日期:2018-08-07 19:46:2315-16赛季CBA联赛之广夏
日期:2018-08-08 19:31:5015-16赛季CBA联赛之青岛
日期:2018-11-26 15:21:5015-16赛季CBA联赛之上海
日期:2018-12-11 09:45:3219周年集字徽章-年
日期:2020-04-18 23:54:5215-16赛季CBA联赛之深圳
日期:2020-04-19 21:40:19黑曼巴
日期:2022-04-03 17:55:1315-16赛季CBA联赛之八一
日期:2018-07-03 16:56:46
发表于 2022-03-18 12:50 |显示全部楼层
回复 2# zhengwei_zw


  1. cat 1
  2. 8600.00
  3. 94.05
  4. 72.00
  5. 166.05
  6. 8600.00
  7. 494.31
  8. 101.67
  9. 72.00
  10. 8600.00
  11. 267.36
  12. 4022.58
  13. 4300.00
  14. 177.53
  15. 737.00
  16. 508.33
  17. 72.00
  18. 36.00
  19. 7.20
  20. 3966.09
  21. 10246.02
  22. 986.72
  23. 8600.00
  24. 2772.45
  25. 1490.02
  26. 477.38
  27. 340.80
  28. 101.67
  29. 72.00
  30. 3088.60
  31. 10.17
  32. 7.20
  33. 142.00
  34. 205.00
  35. 60.20
  36. 150.00
  37. 10.80
  38. 391.53
  39. 4300.00
  40. 377.27

  41. awk '{a[NR]=$1}END{for(i=1;i<=NR;i++){for(j=i+1;j<=NR;j++){for(k=j+1;k<=NR;k++){b=a[i]+a[j]+a[k];c=17095;d=b>=c?b-c:c-b;e[a[i]"+"a[j]"+"a[k]"="b]=d}}};PROCINFO["sorted_in"]="@val_num_asc";for(i in e){if(e[i]<=200){print i" -> "e[i]}}}' 1
  42. 4022.58+10246.02+2772.45=17041 -> 53.95
  43. 4300.00+8600.00+4300.00=17200 -> 105
  44. 8600.00+4300.00+4300.00=17200 -> 105
  45. 3966.09+10246.02+2772.45=16984.6 -> 110.44
  46. 8600.00+7.20+8600.00=17207.2 -> 112.2
  47. 8600.00+8600.00+7.20=17207.2 -> 112.2
  48. 8600.00+8600.00+10.17=17210.2 -> 115.17
  49. 8600.00+8600.00+10.80=17210.8 -> 115.8
  50. 8600.00+36.00+8600.00=17236 -> 141
  51. 8600.00+8600.00+36.00=17236 -> 141
  52. 8600.00+8600.00+60.20=17260.2 -> 165.2
  53. 8600.00+4022.58+4300.00=16922.6 -> 172.42
  54. 4022.58+8600.00+4300.00=16922.6 -> 172.42
  55. 4022.58+4300.00+8600.00=16922.6 -> 172.42
  56. 8600.00+8600.00+72.00=17272 -> 177
  57. 72.00+8600.00+8600.00=17272 -> 177
  58. 8600.00+72.00+8600.00=17272 -> 177
  59. 8600.00+94.05+8600.00=17294 -> 199.05
  60. 94.05+8600.00+8600.00=17294 -> 199.05
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP