0
我需要一种快速方法来查找所有长度为n
的二进制字符串,它们的位数固定为m
。 A C++11
兼容功能,其例如采用std:map
,其中键为固定位的位置,值为固定位的值。输出std::bitset<n>
s或std::vector<n>
的矢量将会很好。 E.g功能:所有可能的长度为n的二进制字符串,其中特定位置的位固定
std::vector< std::bitset<n> > compatible(int n, const std::map<int,bool>& fix)
例如,如果n=3
我们固定第二位为1,那么答案应该是
{{0,1,0},{0,1,1},{1,1,0},{1,1,1}}
当顺序并不重要。
如果另一个数据结构更快,那么我更喜欢速度。如果n < 50
也可以在64位体系结构上实现显着的加速,那么这也会很有趣。