我想弄清楚有多少種可能的方式來組合這個字符串的各種元素。確定可能的組合數
"{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