排列組合以離散數學來看應該是如下列表示
x+y for all x for all y
x = {1,2,3}
y = {a,b,c}
排列出來的集合為:{1a,1b,1c,2a,2b,2c,3a,3b,3c}
用Python要怎麼解決呢?
很簡單,幾乎就跟上面的表示法一樣
z = [a+b for a in x for b in y]
print z 就會看到上面的集合了
有時候離散也會在後面表示條件式如
x+y for all x for all y, if x > 1
那就一樣在Python改成
z = [a+b for a in x for b in y if x > 1]
就好了
由此看來創Python的離散應該很強...
沒有留言:
張貼留言