码迷,mamicode.com
首页 > 其他好文 > 详细

一种轻便的生成全集合的方法——二进制法

时间:2016-05-29 19:59:48      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:

 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的(呵呵)

一种轻便的生成全集合的方法——二进制法

标签:

原文地址:http://www.cnblogs.com/MyNameIsPc/p/5540044.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!