Comment detail

法演算 (Nested Flatten)
Forthで投稿です。
 7 m !
などで法を変えられます。

以下、pForthでの実行結果です。
> 1 2 MOD+ .
3    ok
> 7 3 MOD+ .
0    ok
> 11 12 MOD+ .
3    ok
> 3 2 MOD- .
1    ok
> 2 3 MOD- .
9    ok
> 2 3 MOD* .
6    ok
> 11 12 MOD* .
2    ok
> 18 39 MOD* .
2    ok
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
VARIABLE m
10 m !
: NORMALIZE ( n -- n mod m , m is variable )
m @ MOD DUP 0< IF m @ + THEN ;

: MOD+ ( a b -- a+b mod m )
SWAP NORMALIZE SWAP NORMALIZE + NORMALIZE ;
: MOD- ( a b -- a-b mod m )
SWAP NORMALIZE SWAP NORMALIZE - NORMALIZE ;
: MOD* ( a b -- a*b mod m )
SWAP NORMALIZE SWAP NORMALIZE * NORMALIZE ;

Index

Feed

Other

Link

Pathtraq

loading...