sum(1/(1+0.03)^n for n = 1 to 30
初心者の演習として、を使用してJで次の合計を計算しようとしました+/%(1 + 0.03)^ >:i.30
。これを単純な暗黙の形式にするにはどうすればよいですか?私が試したのは、上記の明示的な形式よりもかなり醜いです。>:@[ (+/&:%)@:^ >:&i.@]
2 に答える
3
あなたはから始めることができます
+/@:%@((1 + 0.03) ^ >:@i.) 30
フォークを使用して0.03を左引数にすることができますが、フックを使用するとよりクリーンになります
(1 + 0.03) +/@:%@([ ^ >:@i.@]) 30 NB. use fork
(1 + 0.03) +/@:%@(^ >:@i.) 30 NB. use hook
の左引数と右引数の両方で同じ操作(インクリメント)が実行されてい^
ます。&
これは、 (作成)が役立つ可能性があるというヒントです。
0.03 +/@:%@(^&>: i.) 30 NB. apply increment to both left & right arg
于 2013-02-22T21:41:58.277 に答える
1
暗黙の機能が欲しいとき、私はしばしば13 :
それを私のために強打させます。この場合、いくつかのバリエーション:
13 : '+/ %((1+0.03)^1+i.y)'
[: +/ [: % 1.03 ^ 1 + i.
13 : '+/ %((1+0.03)^>:i.y)'
[: +/ [: % 1.03 ^ [: >: i.
そして1+0.03
、左の議論として、または何でも:
13 : '+/ %(x^1+i.y)'
[: +/ [: % [ ^ 1 + [: i. ]
13 : '+/ %(x^>:i.y)'
[: +/ [: % [ ^ [: >: [: i. ]
キャップ()が多すぎて[:
醜くないとは言えませんが、それは始まりです。
于 2013-02-22T16:31:50.377 に答える