作者Leon (Achilles)
站内MATLAB
标题Re: [运算] 不尽相异物的排列
时间Mon Dec 5 05:19:07 2011
※ 引述《t007123 (林英杰後援会!!!)》之铭言:
: 想请问两个问题
: 第一个
: 现在有 1 -1 0 三个数下去做排列
: 但是我 1 -1要绑在一起 而且是1後面一定要接 -1
: 然後跟0下去排 我有试过令p=[1,-1] 然後perms(p p p 0)
: 但matlab把p视为可分开的 我现在可能无法用暴力解
: 因为我想跑到18个以上 1 -1 0排列 XDD
: 请问有什麽方法吗?
这我以前写过, 用 dynamic programming.
首先, 把 {1, -1} 看成一个 symbol, 0 是另一个 symbol.
Let's call it a and b.
so, if you only have two elements, it will be
[a b] and [b a].
Now, if you have one more element, let's call it c,
the perm will be
[c [a b]], [c [b a]], [[a b] c], [[b a] c]
Since you already have the result of perm [a b], [b a],
You can calculate the perm [a b c] efficiently by dynamic prog.
But the total number is still very large,
if you are asking {1 -1 0} repeatly 6 times (18 elements total)
the number will be ( 12! / (6! 6!) )* 2^6
It's.. huge.
: 第二个
: 手边有个研究是 五边形顶点有五个箱子 编号A B C D E 照顺序放至顶点
: 要放数字1~25 不可重复 假设从箱子A放数字1
: 则数字2只能放在临近得箱子 例如: 箱子B 箱子E
: 以此类推将所有数字摆放进去 每个箱子数字各数可不同
: 如何将所有的方法都表示出来
: 第二个问题我想matlab会做不下去 太大了 QQ
: 请各位先进能帮助小弟 感谢
这题用 graph 来做啊.. Travel path with length 25 in a 5 node graph
--
赵客缦胡缨,吾钩霜雪明。银鞍照白马,飒沓如流星。
十步杀一人,千里不留行。是了拂衣去,深藏身与名。
闲过信陵饮,脱剑膝前横。将炙啖朱亥,持觞劝侯赢。
三杯吐然诺,五岳倒为轻。眼花耳热後,意气素霓生。
就赵挥金锤,邯郸先震惊。千秋二壮士,烜赫大梁城。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 76.170.76.14