我想弄清楚有多少种可能的方式来组合这个字符串的各种元素。确定可能的组合数
"{Hello|Hi|Hey} {world|earth}{!|.|?}"
当一个项目(由竖线/ |)是随机选择从每个组({})并组合成一个字符串。
所以上面的“模板”可以产生:
Hello world.
Hi earth?
Hey world.
Hi world?
我猜这是一种排列的,但我要确保我得到这个权利。
这将是非常好的,如果这与“n”嵌套项目一起工作。
"{{Hello|Hi|Hey} {world|earth}|{Goodbye|farewell} {noobs|n3wbz|n00blets}}"
我宁愿过暴力循环,如果能够得到答案数学/统计基础的解决方案。
谢谢!
真的那么简单吗?我不需要使用某种排列? (http://en.wikipedia.org/wiki/Permutation) – erikcw 2010-01-04 18:17:48
@erikcw查看上面的更新。 – Seth 2010-01-04 19:03:23
要做子选择{world | earth} | {Goodbye | farewell}只是递归地运行解析算法来获取子部分值并继续处理。 – 2010-01-04 19:09:36