一种轻便的生成全集合的方法——二进制法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一种轻便的生成全集合的方法——二进制法相关的知识,希望对你有一定的参考价值。
1 #include <stdio.h> 2 3 void print_subset(int n, int i) { // 打印{0, 1, 2, ..., n-1}的子集S 4 for(int j = 0; j < n; j++) 5 if(i&(1<<j)) printf("%d ", j); // 这里利用了C语言“非0值都为真”的规定 6 printf("\n"); 7 } 8 9 int main() { 10 int n = 5; 11 for(int i = 0; i < (1<<n); i++) // 枚举各子集所对应的编码 0, 1, 2, ..., 2n-1 12 print_subset(n, i); 13 return 0; 14 }
源码大部分是copy的(呵呵)
以上是关于一种轻便的生成全集合的方法——二进制法的主要内容,如果未能解决你的问题,请参考以下文章
有没有一种简单的方法来抑制 Oracle 中集合的 XML 行标记?