P-Adic numbers, basic: Difference between revisions
Content added Content deleted
(→{{header|Raku}}: fix copypasto and test again data set from peer entries, WIP) |
m (→{{header|Raku}}: some updates) |
||
Line 1,605: | Line 1,605: | ||
method r2pa (Rat $x is copy, \p, \d) { # Reference: math.stackexchange.com/a/1187037 |
method r2pa (Rat $x is copy, \p, \d) { # Reference: math.stackexchange.com/a/1187037 |
||
self.p = p; |
self.p = p ; |
||
$x += p**d if $x < 0 ; # complement |
|||
while +self.v < d { |
while +self.v < d { |
||
my %d = ^p Z=> (( $x «-« ^p ) »/» p )».&{ .denominator % p }; # .kv |
my %d = ^p Z=> (( $x «-« ^p ) »/» p )».&{ .denominator % p }; # .kv |
||
Line 1,619: | Line 1,620: | ||
p => p, |
p => p, |
||
v => reverse gather for ( self.v.reverse Z x.v.reverse )».sum |
v => reverse gather for ( self.v.reverse Z x.v.reverse )».sum |
||
{ |
{ given ($_+$div).polymod(p) { take .[0] ; $div = .[1] } } |
||
} |
} |
||
Line 1,633: | Line 1,634: | ||
< -7/5 99/70 7 4> , |
< -7/5 99/70 7 4> , |
||
< 26/25 -109/125 5 5 >, |
< 26/25 -109/125 5 5 >, |
||
⚫ | |||
⚫ | |||
< 5/19 -101/384 2 12>, |
< 5/19 -101/384 2 12>, |
||
< 6/7 -5/7 10 7 >, |
< 6/7 -5/7 10 7 >, |
||
Line 1,642: | Line 1,641: | ||
< 11/4 679001/207 2 43>, |
< 11/4 679001/207 2 43>, |
||
< 11/4 679001/207 3 27 >, |
< 11/4 679001/207 3 27 >, |
||
⚫ | |||
⚫ | |||
< -22/7 46071/379 7 13 >, |
< -22/7 46071/379 7 13 >, |
||
⚫ | |||
< -101/109 583376/6649 61 7>, |
< -101/109 583376/6649 61 7>, |
||
⚫ | |||
⚫ | |||
< 122/407 -517/1477 7 11>, |
< 122/407 -517/1477 7 11>, |
||
# ]]]]] |
# ]]]]] |
||
Line 1,658: | Line 1,652: | ||
< 11/4 679001/207 11 13 >, |
< 11/4 679001/207 11 13 >, |
||
< 1/4 9263/2837 7 11 >, |
< 1/4 9263/2837 7 11 >, |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
# ]]]]] |
# ]]]]] |
||