mathematica函数子集和元组的使用
程序员文章站
2022-04-01 07:58:38
...
我们从下面这个问题来了解这两个函数。
问题
现有两个 1Kg 的快件,一个 2Kg 的快件,三个 3Kg 的快件,三个 4Kg 的快件和一个 5Kg 的快件,用两个承受 15Kg 的布袋装完所有快件有多少种可能?
用到的函数
DeleteDuplicates
:删除重复的元素 Subsets
:获得子集 Tuples
:获得所有的组合
关于Subsets
,Tuples
这两个函数我们可以看一下下面这张图片,来看一下两者的区别
解答
首先我们先计算出每个袋子中应该如何装快件,使得正好放满 15Kg。
weight = {1, 1, 2, 3, 3, 3, 4, 4, 4, 5};
way = Select[DeleteDuplicates[Subsets[weight]], Total[#] == 15 &]
接着计算两个袋子的装法,使得两个袋子正好装掉上面所有的快件
res = Select[{#1, #2, Join[#1, #2]} & @@@ Tuples[way, 2],
Sort[#[[3]]] == weight &];
DeleteDuplicates[Sort[{#1, #2}] & @@@ res[[All, {1, 2}]]] // Column
完整解答
以上,所有
2017 / 07 / 31
上一篇: ITK学习笔记——dicom序列读取写入
下一篇: css中背景属性核心
推荐阅读
-
EXCEL使用自定义的角度格式和函数将角度转换成弧度
-
JavaScript学习和使用之函数声明和函数表达式的区别
-
如何使用PHP实现javascript的escape和unescape函数
-
Kotlin 扩展函数和扩展属性的使用方法
-
Python2.x和3.x下maketrans与translate函数使用上的不同
-
awk正则表达式和内置函数的使用方法实例详解
-
Python中函数的多种格式和使用实例及小技巧
-
php中使用key,value,current,next和prev函数遍历数组的方法
-
python使用装饰器和线程限制函数执行时间的方法
-
python中使用sys模板和logging模块获取行号和函数名的方法