
5 个开关相当于 5 个二进制位。
列出 5 个二进制位的所有排列情况。
类似:
0,0,0,0,0 ;
0,0,0,0,1 ;
0,0,0,1,0 ;
0,0,0,1,1 ;
0,0,1,0,0 ;
0,0,1,0,1 ;
1 binux 2019 年 4 月 28 日 for i in range(2**5): print bin(i) |
6 madao 2019 年 4 月 28 日 ([1,0]*5).combination(5).to_a.uniq |
7 SorcererXW 2019 年 4 月 28 日 非得使用所谓“算法”的说法,就是把它看成一个 n+1 层的二叉树,先序遍历一遍就好了 |
8 holmesabc 2019 年 4 月 28 日 第 1 位为 (0, 1), 与 F(剩余的四位所有开关方式) 组合一下。 递归一下 |
10 inhzus 2019 年 4 月 28 日 via Android void printPermutation(int depth, string foo) { if (depth > 5) return; else if (depth > 0) cout << foo << endl; printPermutation(depth + 1, foo + "1"); printPermutation(depth + 1, foo + "0"); } 手机上写的 将就看吧 |
12 dingyaguang117 2019 年 4 月 28 日 估计这题目是希望用 DFS |
13 stevenshuang 2019 年 4 月 28 日 via iPhone cnt = 0 def aux(start, arr): if start == 5: global cnt cnt += 1 print arr else: for i in range(2): arr[start]= i aux(start+1, arr) def main(): arr=[0]*5 for i in range(2): arr[0]=i aux(1, arr) main() print cnt |
14 maggch 2019 年 4 月 28 日 这也算算法吗... |
15 behanga 2019 年 4 月 28 日 11111 的全排列? |
16 minami 2019 年 4 月 28 日 next_permutation,搞定 |
17 minami 2019 年 4 月 28 日 还可以 bitset |
18 ezksdo 2019 年 4 月 28 日 module Main where import Numeric.Natural import Prelude hiding ( (^) ) (^) :: [Int] -> Natural -> [[Int]] a ^ n = f a n [[]] where f _ 0 s = s f a n s = f a (n - 1) ((:) <$> a <*> s) main :: IO () main = print ([0, 1] ^ 5) |
19 sosilver 2019 年 4 月 29 日 via Android function s(str, n) { if (n == 0) return arr.push(str) s(str + "0", n - 1) s(str + "1", n - 1) } |
20 LxExExl 2019 年 4 月 29 日 via iPhone LC 有个 combination 系列 模板总结的非常好了 |
21 Cbdy 2019 年 4 月 29 日 via Android 11111B 种 |
22 iceheart 2019 年 4 月 29 日 via Android for (ini i = 0; i < 32; i++) { printf("%d,%d,%d,%d,%d\n", i / 16, (i/8)&1, (i/4)&1, (i/2)&1, i&1); } |
24 F281M6Dh8DXpD1g2 2019 年 4 月 29 日 via iPhone 楼上所有答案的作者都没有 @binux 对这个问题理解的深刻 |
25 JmmBite 2019 年 4 月 29 日 i=32; while(i--){ console.log((i).toString(2)); } |
26 Variazioni 2019 年 4 月 29 日 @binux #1 qiandao.today 的作者?膜拜大神。。 |
27 versionzhang 209 年 4 月 29 日 via Android 这个不是用高中排列组合的知识就搞定了么。 。2 的 n 次方,每个开关有两种情况,总共有 n 位 |
28 versionzhang 2019 年 4 月 29 日 via Android @versionzhang 列出来的话就是从 0 到 2 的 n 次方-1 的二进制表示。。 |