Polynomial synthetic division: Difference between revisions
Content added Content deleted
(Added Sidef) |
Thundergnat (talk | contribs) (→{{header|Perl 6}}: Add Perl 6 example) |
||
Line 57: | Line 57: | ||
<pre>[1, -12, 0, -42] / [1, -3] = [[1, -9, -27], [-123]]</pre> |
<pre>[1, -12, 0, -42] / [1, -3] = [[1, -9, -27], [-123]]</pre> |
||
=={{header|Perl 6}}== |
|||
{{trans|Python}} |
|||
{{works with|Rakudo|2016.09}} |
|||
<lang perl6>sub synthetic-division ( @numerator, @denominator ) { |
|||
my @result = @numerator.clone; |
|||
my $end = @denominator.end; |
|||
for ^@numerator-$end -> $i { |
|||
next unless @result[$i]; |
|||
@result[$i] /= @denominator[0]; |
|||
@result[$i+$_] -= @denominator[$_] * @result[$i] for 1..$end; |
|||
} |
|||
'quotient' => @result[0 ..^ *-$end], |
|||
'remainder' => @result[*-$end .. *]; |
|||
} |
|||
my @tests = |
|||
[1, -12, 0, -42], [1, -3], |
|||
[1, 0, 0, 0, -2], [1, 1, 1, 1]; |
|||
for @tests -> @n, @d { |
|||
my %result = synthetic-division( @n, @d ); |
|||
say "[{@n}] / [{@d}] = [%result<quotient>], remainder [%result<remainder>]"; |
|||
}</lang> |
|||
{{out}} |
|||
<pre>[1 -12 0 -42] / [1 -3] = [1 -9 -27], remainder [-123] |
|||
[1 0 0 0 -2] / [1 1 1 1] = [1 -1], remainder [0 0 -1] |
|||
</pre> |
|||
=={{header|Python}}== |
=={{header|Python}}== |