J 如何让方程自相乘?

发布于 2024-10-18 12:03:58 字数 296 浏览 0 评论 0 原文

我怎样才能让这个方程自乘呢?

*/-.%~.q:36

除了再次重复数字36之外。顺便说一句,这是欧拉的 Totient 函数。

在此处输入图像描述

我缺少将其与其本身相乘的最后一步。

是的,我知道他们已经在 jsoftware 上有了这个功能的代码。但我正在尝试分解代码并学习。

抱歉问这么简单的问题。在 Google 上很难找到 J 的帮助。

How do I get this equation to multiply by itself?

*/-.%~.q:36

other than repeating the number 36 again. It's Euler's Totient Function by the way.

enter image description here

I'm lacking the last step of multiplying this by itself.

Yes, I know they already have the code for this function at jsoftware. But I'm trying to break down the codes and learn.

Sorry to ask such simple questions. It's really hard to find help for J on Google.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

我的奇迹 2024-10-25 12:03:58

再次使用该值的最直接方法是再次包含该值。

   */ 36, -. % ~. q: 36
12

可以为值使用名称。

   */ y, -. % ~. q: y=. 36
12

动词可以被定义。该名称是其中的本地名称。

   etf=: verb : '*/ y, -. % ~. q: y'
   etf 36
12

相同的动词可以用默认的形式表达。在这种形式中,参数是隐含的,而不是命名的。这里两次使用参数值的关键是在括号内创建的钩子

   etfT=: */ @ ( , -. @ % @ ~. @ q: )
   etfT 36
12

The most direct way to use the value again is to include the value again.

   */ 36, -. % ~. q: 36
12

A name can be used for the value.

   */ y, -. % ~. q: y=. 36
12

A verb can be defined. The name is local within it.

   etf=: verb : '*/ y, -. % ~. q: y'
   etf 36
12

The same verb can be phrased in tacit form. In this form the parameter is implied, not named. Here the key to using the parameter value twice is the hook created within parentheses.

   etfT=: */ @ ( , -. @ % @ ~. @ q: )
   etfT 36
12
谁许谁一生繁华 2024-10-25 12:03:58

简短的答案

y * (f y)

(* f) y

较长的答案

您有一种情况

y f (g (y))

,其中 f 是二元 * ,而 g 是您已经拥有的函数: */-.%~.q:。现在,yf (g(y)) 简单地转换为“train”(fg) y(如您在手册)。使用 Cap [:* 加上括号 g

g =: [: */ [: -. [: % [: ~. q:

我们终于有了:

phi =: * g
phi 36
12

(* [: */ [: -. [: % [: ~. q:) 36
12

* 您可以使用 AtopAt 构造函数 g 但 Cap 通常对于火车来说更清晰。

Short answer

y * (f y)

is

(* f) y

Longer answer

You have a case of

y f (g (y))

where f is the dyad * and g is the function that you already had: */-.%~.q:. Now, y f (g(y)) transforms simply to the "train" (f g) y (as you can see at the manual). Using Cap [:* to parenthesize g:

g =: [: */ [: -. [: % [: ~. q:

we finally have:

phi =: * g
phi 36
12

or

(* [: */ [: -. [: % [: ~. q:) 36
12

* You can use Atop and At to construct function g but Cap is usually clearer for trains.

月下伊人醉 2024-10-25 12:03:58

好吧,这是我想出的。

(* */@:-.@:%@~.@q:)36

Ok this what I came up with.

(* */@:-.@:%@~.@q:)36
纵山崖 2024-10-25 12:03:58

在我尝试了这个函数,试图找出它的工作原理并进行研究等之后(我只有第二年的微积分背景),我回顾了素数函数的旧选项卡p:发现J内置了欧拉的totient函数 5&p:

After I played around with this function trying to find out how it works and researching and the like (I only have a second year Calculus background), I looked back at an old tab for the primes function p: and found that J has built in Euler's totient function 5&p: .

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文