首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成给定元素列表的所有组合,排序

问生成给定元素列表的所有组合,排序
EN

Code Golf用户
提问于 2016-12-10 19:24:21
回答 6查看 2K关注 0票数 13

生成一个以列表和数字作为输入的代码,并生成与该数字的长度有关的所有可能的组合。例如,使用列表{0,1}和数字2:

代码语言:javascript
复制
00
01
10
11

您的程序不必两次或更频繁地在列表中期望字符,例如{0、0、0、0、0、1、1、5}

确保按列表的顺序打印出排序的组合:

使用列表{0,1}和数字5(由我的一些代码生成,这是一种太长而无法获胜的方法):

代码语言:javascript
复制
00000
00001
00010
00011
00100
00101
00110
00111
01000
01001
01010
01011
01100
01101
01110
01111
10000
10001
10010
10011
10100
10101
10110
10111
11000
11001
11010
11011
11100
11101
11110
11111

,但具有列表{1,0}和数字2:

代码语言:javascript
复制
11
10
01
00

正如你所看到的,颠倒列表意味着倒序。

看看这个结构,就像一棵树。

这是代码-高尔夫,所以最短的字节代码获胜!

EN

回答 6

Code Golf用户

发布于 2016-12-10 19:32:30

马蒂尔,2字节

代码语言:javascript
复制
Z^

笛卡尔电力公司..。

在网上试试!

票数 8
EN

Code Golf用户

发布于 2016-12-10 19:56:51

Pyth,2字节

代码语言:javascript
复制
^F

在表单list,number中接受输入并打印列表列表的程序。

测试套件

是如何工作的

代码语言:javascript
复制
^F   Program. Input: Q
^FQ  Implicit input fill
 F   Fold
^    repeated Cartesian power
  Q  over Q
     Implicitly print
票数 6
EN

Code Golf用户

发布于 2016-12-10 22:14:17

JavaScript (火狐30+),55字节

代码语言:javascript
复制
f=(a,n)=>n?[for(b of a)for(c of f(a,n-1))[b,...c]]:[[]]

我确信在JavaScript中递归是最好的方法。

票数 5
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/102835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档