Twoim zadaniem jest pobranie dwóch wielomianowych wyrażeń całkowitych z jedną zmienną i pomnożenie ich do ich nieskomplikowanego rozszerzenia od lewej do prawej w pierwszym semestrze (AKA FOIL w przypadku dwumianów). Nie łącz podobnych terminów ani nie zmieniaj kolejności wyników. Aby być bardziej precyzyjnym na temat rozwinięcia, pomnóż pierwszy wyraz w pierwszym wyrażeniu przez każdy wyraz w drugim, w kolejności, i kontynuuj w pierwszym wyrażeniu, aż wszystkie wyrażenia zostaną pomnożone przez wszystkie pozostałe wyrażenia. Wyrażenia zostaną podane w uproszczonym wariancie LaTeX.
Każde wyrażenie będzie sekwencją terminów oddzielonych +
(z dokładnie jedną spacją po każdej stronie). Każde wyrażenie będzie zgodne z następującym wyrażeniem regularnym: (notacja PCRE)
-?\d+x\^\d+
W prostym języku angielskim termin jest opcjonalnym początkiem, -
po którym następuje jedna lub więcej cyfr, a następnie x
nieujemna moc całkowita (z ^
)
Przykład pełnego wyrażenia:
6x^3 + 1337x^2 + -4x^1 + 2x^0
Po podłączeniu do LaTeX otrzymujesz
Dane wyjściowe powinny również być zgodne z tym formatem.
Ponieważ nawiasy nie otaczają wykładników w tym formacie, LaTeX faktycznie renderuje wykładniki wielocyfrowe niepoprawnie. (np. 4x^3 + -2x^14 + 54x^28 + -4x^5
renderuje jako ) Nie trzeba tego uwzględniać i nie należy umieszczać nawiasów w wynikach.
Przykładowe przypadki testowe
5x^4
3x^23
15x^27
6x^2 + 7x^1 + -2x^0
1x^2 + -2x^3
6x^4 + -12x^5 + 7x^3 + -14x^4 + -2x^2 + 4x^3
3x^1 + 5x^2 + 2x^4 + 3x^0
3x^0
9x^1 + 15x^2 + 6x^4 + 9x^0
4x^3 + -2x^14 + 54x^28 + -4x^5
-0x^7
0x^10 + 0x^21 + 0x^35 + 0x^12
4x^3 + -2x^4 + 0x^255 + -4x^5
-3x^4 + 2x^2
-12x^7 + 8x^5 + 6x^8 + -4x^6 + 0x^259 + 0x^257 + 12x^9 + -8x^7
Zasady i założenia
- Możesz założyć, że wszystkie dane wejściowe są zgodne z tym dokładnie formatem. Zachowanie dla dowolnego innego formatu jest niezdefiniowane na potrzeby tego wyzwania.
- Należy zauważyć, że każda metoda pobierania dwóch wielomianów jest poprawna, pod warunkiem, że oba są odczytywane jako ciągi znaków zgodne z powyższym formatem.
- Kolejność wielomianów ma znaczenie ze względu na oczekiwaną kolejność rozszerzenia produktu.
- Musisz obsługiwać współczynniki wejściowe od do i wykładniki wejściowe do .
- W związku z tym należy wspierać współczynniki wyjściowe od do i wykładniki do .
- Możesz założyć, że każdy wielomian wejściowy zawiera nie więcej niż 16 terminów
- Dlatego musisz (przynajmniej) obsługiwać do 256 terminów w danych wyjściowych
- Terminy o zerowych współczynnikach należy pozostawić bez zmian, a wykładniki należy odpowiednio połączyć
- Ujemne zero jest dozwolone na wejściu, ale jest nie do odróżnienia semantycznie od zera dodatniego. Zawsze wyprowadzaj dodatnie zero. Nie pomijaj zerowych terminów.
Wesołego golfa! Powodzenia!