作者sorryChen (陈扬和)
看板Programming
标题在c++中产生n个0和m个1的排列
时间Sun Nov 8 14:07:00 2009
这应该是个简单recursive可以完成的问题
而且我查到stl的next_permutation可用,但好像仅适用在n个不同的element
用在这个问题 就太多pattern被重复列举了...
在Python中有个好用的关键字叫yield...可以在停在function的某行return
下次call此funciton时继续
我的问题是,有没有什麽stl或object可以在c++做同样的事呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 204.140.141.12
1F:→ eva19452002:用recursive你的记忆体很快就爆了 118.169.100.9 11/08 23:15
2F:→ sorryChen:thanks.. my n<30 m<10, so it is ok 128.125.87.33 11/09 03:08
3F:推 Huangs:写个recursive才几行而已 比打上来还快 XD 218.167.2.50 11/09 05:59
4F:→ sorryChen:but I need to test for each enum pat 128.125.87.33 11/09 10:07
5F:→ sorryChen:so I need to write to a file or 128.125.87.33 11/09 10:09
6F:→ sorryChen:test in the recursive. 128.125.87.33 11/09 10:09
7F:→ sorryChen:yield is more elegant. 128.125.87.33 11/09 10:10
8F:推 yauhh:最简单是把1~N做next_permutation,然後 59.112.230.115 11/09 11:19
9F:→ yauhh:用排列的数字当索引,查查是n或m. 59.112.230.115 11/09 11:20
10F:→ yauhh:C++不专处理pattern,在这方面当然不elegant. 59.112.230.115 11/09 11:21
11F:→ yauhh:喔,我搞错了,我讲的会重复列出排列情况 218.160.215.75 11/09 21:24
12F:→ bigpigbigpig:给原po:n 个元素不必完全不同也可以 61.61.252.34 04/19 13:35
13F:→ bigpigbigpig:使用 next_permutation() 哦! 61.61.252.34 04/19 13:36