2

この方程式をそれ自体で乗算するにはどうすればよいですか?

*/-.%~.q:36

もう一度36番を繰り返す以外は。ちなみにオイラーのトーティエント関数です。

ここに画像の説明を入力してください

これを自分で掛ける最後のステップが欠けています。

はい、私は彼らがすでにjsoftwareでこの関数のコードを持っていることを知っています。しかし、私はコードを分解して学ぼうとしています。

そんな簡単な質問をしてすみません。GoogleでJのヘルプを見つけるのは本当に難しいです。

4

4 に答える 4

2

値を再度使用する最も直接的な方法は、値を再度含めることです。

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

値には名前を使用できます。

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

動詞を定義できます。名前はその中でローカルです。

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

同じ動詞を暗黙の形で表現することができます。この形式では、パラメータは名前ではなく暗黙的に示されます。ここで、パラメーター値を2回使用するための鍵は、括弧内に作成されたフックです。

   etfT=: */ @ ( , -. @ % @ ~. @ q: )
   etfT 36
12
于 2011-02-21T16:25:35.500 に答える
1

短い答え

y * (f y)

(* f) y

長い答え

あなたは

y f (g (y))

ここfで、はダイアド*であり、gはすでに持っている関数です*/-.%~.q:。これで、y f (g(y))単純に「電車」に変換されます(マニュアル(f g) yで確認できます)。キャップ*を使用して括弧を付ける: [:g

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

私たちはついに持っています:

phi =: * g
phi 36
12

また

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

* AtopAtを使用して関数を作成できますgが、通常、電車の場合はCapの方が明確です。

于 2011-02-23T05:28:51.423 に答える
0

この関数を試してみて、どのように機能するかを調べたり、調査したりした後(2年目の微積分のバックグラウンドしかありません)、素数関数の古いタブを振り返ると、p:Jがオイラーのトーティエントを組み込んでいることがわかりました。関数5&p:

于 2011-02-26T02:03:21.587 に答える
0

これは私が思いついたものです。

(* */@:-.@:%@~.@q:)36
于 2011-02-22T01:56:22.377 に答える