|
发表于 2023-10-15 04:27:28
|
显示全部楼层
- Clear["Global`*"];(*清除所有变量*)fun[list_]:=Module[{aaa,p1,p2,p3,p4}, aaa=Insert[list,"走道",{{3},{7}}];(*在第3、第7个位置前插入走道*) If[Or[aaa[[1]]==1,aaa[[-1]]==1],Return[False]];(*如果最左边最右边为1,那返回错误*) {p1,p2,p3,p4}=Flatten[Position[aaa,#]&/@{1,2,3,4}];(*获取1234的位置*) If[Abs[p1-p2]!=1,Return[False]];(*如果12位置不相邻,则返回错误*) If[Or[aaa[[1]]==3,aaa[[-1]]==3],Return[False]];(*如果最左边最右边为3,那返回错误*) If[Or[aaa[[1]]==4,aaa[[-1]]==4],Return[False]];(*如果最左边最右边为4,那返回错误*) If[Abs[p3-p4]==1,Return[False]];(*如果34位置相邻,则返回错误*) Return[True](*都到这了,肯定返回True*)]aaa=Permutations[{1,2,3,4,5,6,7,8}];(*生成所有可能*)bbb=Select[aaa,fun[#]&](*只选择符合条件的情况*)ccc=Length[bbb](*统计个数*)
复制代码
我的代码,简单容易懂
2208个结果 |
|