Functional programming 为什么J短语';(二)"一五七三一",;生成一个表,为什么要生成特定的表?

Functional programming 为什么J短语';(二)"一五七三一",;生成一个表,为什么要生成特定的表?,functional-programming,j,tacit-programming,Functional Programming,J,Tacit Programming,上面是这个短语。最后是跟踪和最终结果。我知道这个短语是单子,因为它有一个左右参数。如果运行“15 7 3 1(2&*)15 7 3 1”,则会出现相同的输出。我还得到,正确的表是2对1,3,7,15的幂,其他条目是它们的基数乘以2的幂,但我不明白为什么 在一个相关的注释中,这是一个来自罗塞塔代码网站上的ethopian乘法的短语(实际上,这也是,我在试图弄清楚这一点时走了这么远),并且 ’(1>这只是你问题的初步尝试,因为到目前为止还没有人回答: 副词有很长的左范围: ]t150k=:6!:2

上面是这个短语。最后是跟踪和最终结果。我知道这个短语是单子,因为它有一个左右参数。如果运行“15 7 3 1(2&*)15 7 3 1”,则会出现相同的输出。我还得到,正确的表是2对1,3,7,15的幂,其他条目是它们的基数乘以2的幂,但我不明白为什么

在一个相关的注释中,这是一个来自罗塞塔代码网站上的ethopian乘法的短语(实际上,这也是,我在试图弄清楚这一点时走了这么远),并且
’(1>这只是你问题的初步尝试,因为到目前为止还没有人回答:

副词有很长的左范围:

]t150k=:6!:2 'a150k =: $ ":r150k=: {:  (,+/@(_2&{.) )^:150000 (0x 1x)'
4631.62

0 60 60 #: t150k
1 17 11.6167
r150k
10128383449366380384728502706681008427227914006240871521944866167854579423510169
50198752571599303492471943589300904953648270811064370506598260395645679940891823
17307901573781852234222080308236027906733606532470814177610613237408102006595571
1949713927351702...
a150k
31349
是一个钩子。钩子的右边总是一个单子,左边总是一个二元

+/@(2&|@] # (2&*~ <@#)) (1>.<.@-:)^:a:
最后,
+/
sum

   1 1 0 1 1 # 12 24 48 96 192
12 24 96 192

答案记录在下面,其中标注了以下标识以供二元使用:

x m&v y↔ m&v^:x y

在您的示例中,m是
2
,v是
*
,x和y都是四个数字的列表
15 7 3 1

等式右侧的短语包括
^:x
(“到幂x”)这与使用动词并应用x次相同。动词是
2&*
,因此它被应用了15次。也有7次。也有3次。也有一次。这四个应用程序的结果构成了输出的四行

把重点放在第三个,用括号来强调,下面是发生的事情

   +/12 24 96 192
324
这和

   (2&* (2&* (2&* (15 7 3 1))))
  120 56 24 8
   (2&*)^:3 (15 7 3 1)
120 56 24 8
这和

   (2&* (2&* (2&* (15 7 3 1))))
  120 56 24 8
   (2&*)^:3 (15 7 3 1)
120 56 24 8
让我们应用所有非负整数到3来查看模式:

   (3) 2&* (15 7 3 1)
120 56 24 8
此时,与原始表格的相似性可能会使该表格的含义变得可访问:

   (0 1 2 3) 2&* (15 7 3 1)
 15  7  3 1
 30 14  6 2
 60 28 12 4
120 56 24 8

同样的事情也在发生,只是因为你给出了一些更高的数字,所以发生的频率更高。

这似乎很杂乱。斐波那契数的计算与这个问题有什么关系?没什么,我只是觉得有趣的是,一个人可以用J来计算一个有那么多数字的斐波那契数。即使花了一个多小时。我想抱歉,我只是漫无目的地说。但当我试着解决一个问题时,我发现如果回答者了解我的解决方向,这会对他们有所帮助。如果这让你更难理解我的问题,我道歉。
+/@(2&|@] # (2&*~ <@#)) (1>.<.@-:)^:a:
(1 >. (<. @ -:)) ^: a:
   1 1 0 1 1 # 12 24 48 96 192
12 24 96 192
   +/12 24 96 192
324
   (2&* (2&* (2&* (15 7 3 1))))
  120 56 24 8
   (2&*)^:3 (15 7 3 1)
120 56 24 8
   (3) 2&* (15 7 3 1)
120 56 24 8
   (0 1 2 3) 2&* (15 7 3 1)
 15  7  3 1
 30 14  6 2
 60 28 12 4
120 56 24 8
   (15 7 3 1) 2&* (15 7 3 1)
491520 229376 98304 32768
  1920    896   384   128
   120     56    24     8
    30     14     6     2