Polynomial synthetic division: Difference between revisions

Content added Content deleted
(Added Sidef)
(→‎{{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}}==