[C] Dodawanie i mnożenie wielomianów

Odpowiedz Nowy wątek
szach
2005-05-21 20:02
szach
0

Czy może pisał ktoś kiedyś funckje realizujący te operacje? Chodzi mi o mnożenie i dodawanie wielomianów (nawet tylko stopnia równego jeden i a=1, czyli np. mnożenie: (x-1)(x-6)(x-3), dodawanie: (x-4)+(x-2) ). Proszę o pomoc, bo kompletnie nie wiem jak ten problem ugryść :|

Pozostało 580 znaków

szach
2005-05-22 21:49
szach
0

Spoko. Dzieki!

Pozostało 580 znaków

gandzia
2005-05-22 22:00
gandzia
0

hehe
a tak dokładnie to jak to ma działać?
dajesz na wejście parę wielomianów do np.przemnożenia, tak?
a program ma coś wyliczyć czy tylko coś takiego powiedzmy:
(x-2)*(x+3)=x^2+x-6
czy o coś innego chodziło?

Pozostało 580 znaków

szach
2005-05-22 22:08
szach
0

Powiedzmy, że tak. I np. jak: (x-2)*(x+3)=x2+x-6, to żeby jakoś zwracać współczynniki przy x-ach do kolejnych potęg. W tym przykładzie powiedzmy a=1, b=1 (bo współczynnik przed x2 wynosi 1) , c= -6.

Pozostało 580 znaków

2005-05-23 20:37

Rejestracja: 17 lat temu

Ostatnio: 14 lat temu

0

no ja bym dal tablice dwuwierszowa (typu string) w pierwszym wierszu zapisujesz roznanie przy czym kazda komorka = 1 element czyli znak/nawias/zmienna/liczba a w drugim wierszu (rownierz moga byc stringi cho bardziej by pasily int) wstawiasz flage oznaczajaca jakiego typu jest to warosc i tak np jesli bit 1 od lewej bedzie ustawiony tzn ze reszta oznacza potege (zmiennej) a jesli ma zero to oznacza ze jest to liczba/znak/nawias)

majac juz to mozesz robic reszte, moj pomysl jest taki:

1) zamieniasz wyrazenia typu 2x na 2x (ew zeby uniknac zapisu w dwoch wierszach mozna uzyc zeby zapisywac potegi np x2 oznacza x do kwadratu)
2) analizujesz ciag i szukasz najglebszych nawiasow (Odwrocona Notacja Polska moze byc pomocna)
a) jesli jest nawias idz do 3
b) jesli nawiasu nie ma idz do 7
3) sprawdzasz czy ow najglebszy nawias jest mnozony rpzez cos jesli nie (za wyjatkiem minusa gdzie zmieniasz znak zawartych w nawiasie skladnikow czyli tak jak bys mnozyl przez -1 np masz x -(x+1) to -( to tak jakbys napisal x + (-1)
(x+1)) opuszczasz nawias i idziesz dalej
4) jesli trafi sie wyrazenie w nawiasach ktore jest mnozone to wykonujesz mnozenie kazdego elementu rpzez kazdy nastepnie jesli sa jakies wielomiany o takiej samej potedze to je sumujesz
5) podmien pomnozone nawiasy na jeden nawias (mnoiz naraz tylko 2 pary nawiasow, a jesli byly jeszcze 3cie 4te itd nawiasy w serii np (1-x)(2+x)(3-x^2) to oblicz wpierw pierwsze dwa nawiasy i podmien je na wynik (nadal w naswiasach) jesli nie ma to i tak nadal zostaw w nawiasach (przypadek z "-(" z punktu 3)
6) wroc do punktu 2
7) wypisz wynik

wiem troche namacilem ale mniej wiecej tak to trzeba zrobic poczytaj sobie o odwrotnej notacji polskiej w twoim rpzypadku musisz po prostu recznie wykonywac mnozenia niewiadomych przez niewiadome czyli wszelkie nawiasy z niewiadomymi przez inne nawiasy

polecam rownierz nauczyc sie pisac algorytmy w formie graficznej bardzo pomaga zrozumiec jak ma byc napisany program (probowalem wlasnie tak napisac moj poradnik dla ciebie)


Nie bądz lama w strzelankach online nie uzywaj self killa w duelu :P

Pozostało 580 znaków

Odpowiedz

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