Mathematica实现随机组合表输出的问题(二)?
来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/08/12 00:12:38
Mathematica实现随机组合表输出的问题(二)?
关于实现随机组合表输出的问题(二)?
输入:
list[s_, k1_, k2_] :=
DeleteDuplicates[
DeleteCases[
Partition[
RandomSample[Flatten[Table[#, {RandomInteger[{k1, k2}]}] & /@ s]],
2], #1 == #2 || #1 == Reverse[#2] || #[[1]] == #[[2]] &], {x_,
x_}]
list[{a, b, c, d}, 3, 4]
输出:
{{a, c}, {b, c}, {a, a}, {b, d}, {d, d}, {b, c}, {d, c}}
说明:要求每个子表的元素不不能相同,这里出现了{a,a,},{d,d}类.
谢谢!
关于实现随机组合表输出的问题(二)?
输入:
list[s_, k1_, k2_] :=
DeleteDuplicates[
DeleteCases[
Partition[
RandomSample[Flatten[Table[#, {RandomInteger[{k1, k2}]}] & /@ s]],
2], #1 == #2 || #1 == Reverse[#2] || #[[1]] == #[[2]] &], {x_,
x_}]
list[{a, b, c, d}, 3, 4]
输出:
{{a, c}, {b, c}, {a, a}, {b, d}, {d, d}, {b, c}, {d, c}}
说明:要求每个子表的元素不不能相同,这里出现了{a,a,},{d,d}类.
谢谢!
![Mathematica实现随机组合表输出的问题(二)?](/uploads/image/z/14951256-24-6.jpg?t=Mathematica%E5%AE%9E%E7%8E%B0%E9%9A%8F%E6%9C%BA%E7%BB%84%E5%90%88%E8%A1%A8%E8%BE%93%E5%87%BA%E7%9A%84%E9%97%AE%E9%A2%98%EF%BC%88%E4%BA%8C%EF%BC%89%3F)
你把DeleteDuplicates和DeleteCases换了位置,但里面的选项参数没改变位置导致DeleteDuplicates和DeleteCases这两个函数都失效了.
list[s_, k1_, k2_] := Module[{lis}, Label[begin];
lis = DeleteDuplicates[
DeleteCases[
Partition[
RandomSample[
Flatten[Table[#, {RandomInteger[{k1, k2}]}] & /@ s]], 2], {x_,
x_}], #1 == #2 || #1 == Reverse[#2] || #[[1]] == #[[2]] &];
If[And @@ (k1 <= Count[Flatten[lis], #] & /@ s), Print[lis],
Goto[begin]]]
用不好看的过程式代码筛选了一下结果.昨天回答失败了,这个就不用采纳了.
list[s_, k1_, k2_] := Module[{lis}, Label[begin];
lis = DeleteDuplicates[
DeleteCases[
Partition[
RandomSample[
Flatten[Table[#, {RandomInteger[{k1, k2}]}] & /@ s]], 2], {x_,
x_}], #1 == #2 || #1 == Reverse[#2] || #[[1]] == #[[2]] &];
If[And @@ (k1 <= Count[Flatten[lis], #] & /@ s), Print[lis],
Goto[begin]]]
用不好看的过程式代码筛选了一下结果.昨天回答失败了,这个就不用采纳了.