예제 #1
0
 /**
  * @param Base[] $bases
  * @param Output $output
  * @return Output[]
  */
 private function keepChange(array $bases, Output $output)
 {
     /** @var Fraction $sum */
     $sum = array_reduce($bases, function (Fraction $sum, Base $base) {
         return $sum->plus($base->getOutput()->getValue());
     }, new Fraction(0));
     if ($sum == $output->getValue()) {
         return [$output];
     }
     return [$output, new Output(new Binary(null), $sum->minus($output->getValue()))];
 }
예제 #2
0
 private function OutputToArray(Output $output, Transcoder $transcoder)
 {
     return ['to' => $transcoder->encode($output->getTarget()->getData()), 'val' => $this->FractionToArray($output->getValue())];
 }