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
{ take ( $_ + $div ) % p and $div = $_ div p } # .polymod
{ 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 >,
< 49/2 -4851/2 7 6 >,
< -9/5 27/7 3 8>,
< 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 2 37 >,
< -22/7 46071/379 3 23 >,
< -22/7 46071/379 7 13 >,
< -22/7 46071/379 7 13 >,
< -101/109 583376/6649 2 40>,
< -101/109 583376/6649 61 7>,
< -101/109 583376/6649 61 7>,
< -101/109 583376/6649 32749 3>,
< -25/26 5571/137 7 13>,
< 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 >,
< 49/2 -4851/2 7 6 >,
< -9/5 27/7 3 8>,
< -22/7 46071/379 2 37 >,
< -22/7 46071/379 3 23 >,
< -101/109 583376/6649 2 40>,
< -101/109 583376/6649 32749 3>,
< -25/26 5571/137 7 13>,
# ]]]]]
# ]]]]]