Mathematica进阶[2]–mathematica函数子集和元组的使用

王 茂南 2017年10月5日16:13:592 1490字阅读4分58秒
摘要这里介绍mathematica里的两个函数,函数的子集和元祖,这里的元祖和python中的含义是不一样的,大家要注意一下。

 

mathematica函数子集和元组的使用

 

我们从一个问题来了解这两个函数。

问题

 

现有两个1Kg的快件,一个2Kg的快件,三个3Kg的快件,三个4Kg的快件和一个5Kg的快件,用两个承受15Kg的布袋装完所有快件有多少种可能?

 

用到的函数

 

  • `DeleteDuplicates`:删除重复的元素
  • `Subsets`:获得子集
  • `Tuples`:获得所有的组合

关于SubsetsTuples这两个函数我们可以看一下下面这张图片,来看一下两者的区别

 

Mathematica进阶[2]–mathematica函数子集和元组的使用

 

解答

 

首先我们先计算出每个袋子中应该如何装快件,使得正好放满15Kg。

 


weight = {1, 1, 2, 3, 3, 3, 4, 4, 4, 5};

way = Select[DeleteDuplicates[Subsets[weight]], Total[#] == 15 &]

 

Mathematica进阶[2]–mathematica函数子集和元组的使用

 

接着计算两个袋子的装法,使得两个袋子正好装掉上面所有的快件

 


res = Select[{#1, #2, Join[#1, #2]} & @@@ Tuples[way, 2],

Sort[#[[3]]] == weight &];

DeleteDuplicates[Sort[{#1, #2}] & @@@ res[[All, {1, 2}]]] // Column

 

Mathematica进阶[2]–mathematica函数子集和元组的使用

 

完整解答

 

Mathematica进阶[2]–mathematica函数子集和元组的使用

 

  • 微信公众号
  • 关注微信公众号
  • weinxin
  • QQ群
  • 我们的QQ群号
  • weinxin
王 茂南
  • 本文由 发表于 2017年10月5日16:13:59
  • 转载请务必保留本文链接:https://mathpretty.com/8299.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:2   其中:访客  1   博主  1
    • zxm
      zxm

      数学这么厉害 佩服 学霸

        • wmn7
          wmn7

          @ zxm 谢谢支持,会继续更新的,希望可以持续关注我们。