作业帮 > 综合 > 作业

Mathematica实现随机组合表输出的问题(二)?

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/11 08:13:27
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}类.
谢谢!
Mathematica实现随机组合表输出的问题(二)?
你把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]]]
用不好看的过程式代码筛选了一下结果.昨天回答失败了,这个就不用采纳了.