我想要最简单的动词,它给出给定长度的所有 bool 列表的列表。

例如

   f=. NB. Insert magic here

   f 2
0 0
0 1
1 0
1 1

   f 3
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1

最佳答案

此功能最近已添加到 stats/base 插件中。

   load 'stats/base/combinatorial'  NB. or just load 'stats'
   permrep 2    NB. permutations of size 2 from 2 items with replacement
0 0
0 1
1 0
1 1
   3 permrep 2  NB. permutations of size 3 from 2 items with replacement
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
   permrep      NB. display definition of permrep
$:~ :(# #: i.@^~)

使用 Qt IDE,您可以通过在 Term 窗口中输入 permrep 来查看定义 open 'stats/base/combinatorial' 和 friend 的脚本。或者,您可以 view it on Github

要定义问题中指定的 f,以下内容就足够了:
   f=: permrep&2
   f=: (# #: i.@^~)&2  NB. alternatively
   f 3
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1

关于j - J中给定长度的所有 bool 可能性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55133139/

10-12 17:38