3 różne funkcje a jeden znak różnicy

0

Mam problem, ponieważ mam do zaimplementowania 3 funkcje (mnożenie Hadamarda, odejmowanie i dodawanie) macierzy. I wykonuje w nich te same operacje tylko różnią się znakiem. Idzie to jakoś prosciej zrobić czy trzeba wywoływac 3 funkcje, gdzie każda różni się jednym znakiem?

0

Można to zrobić w OOP tak (pseudo kod):

interface Operation
operate(int a, int b): int;

class Multiplication implements Operation
operate(int a, int b) => a * b;

class Matrix
constructor(Operation operation) this.operation = operation;
calculate() => this.operation.operate(5, 5) + 25 * 8;

Matrix multiplicationMatrix = new Matrix(new Multiplication());
multiplicationMatrix.calculate();

Oczywiście będziesz miał 3 klasy które implementują interfejs Operation, nazwy też mocno robocze bo nie znam się na matematyce.

0

Nie do końca rozumiem to co napisałeś. Mam główną klasę Matrix gdzie mam różne metody i między innymi teraz muszę napisać 3 metody które robią działania na nich. I nie wiem jak to zrobić za bardzo. Możesz bardziej to rozjaśnić?

2
Integer jakasMetoda(Integer x, Integer y, BinaryOperator<Integer> op)  {
     return op.apply(x,y);
} 

BinaryOperator<Integer> plus = (a,b) -> a+b;
BinaryOperator<Integer> minus= (a,b) -> a-b;

println(jakasMetoda(2,4, plus));
println(jakasMetoda(2,4, minus));

To dla operacji na bardzo trywialnej macierzy 1x1 - dla większych musisz sobie sam poradzić.

1 użytkowników online, w tym zalogowanych: 0, gości: 1