12.07.2015 Views

Spis treœci - Patrz

Spis treœci - Patrz

Spis treœci - Patrz

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

wcześniejsze procesy). Proces P(N) przekazuje procesowi użytkownika P(N+1) jedynieobliczone wyniki. Sygnał KONIEC() oddziela od siebie wyniki dla każdego wielomianu.comment N - liczba procesów liczących;[P(i:l..N):: iksy, mam: boolean; a, b, x, y: real;(iksy, mam) := (false, false);*[ not iksy; P(i-l)?b ->[mam -> P(i+l)!b[] not mam -> (mam, a) := (true, b)][] iksy; P(i-l)?x -> [i l -> P(i-l)?y[] i = l -> y := O ];[i O N -> P(i+l)!x[] i = N -> skip ] ;[mam -> P(i+l)!y*x+a[] not mam -> P(i+l)!y][] P(i-l)? KONIECO -> [i N -> P(i+l) !KONIEC()[] i = N; iksy -> P(N+l)!KONIEC()[] i = N; not iksy -> skip];iksy := not iksy;mam := mam and iksy;]]Rozwiązanie wersji 2Każdy proces P (i) zatrzymuje u siebie pierwszy otrzymany współczynnik, ale jeśliotrzyma następny, to ten, który już miał, przesyła procesowi P(i+l), i a zatrzymuje u siebienowo otrzymany współczynnik (ostatecznie będzie to także a(M+l-i)). W trakcie obliczeńproces P(i), i > l, otrzymuje od procesu P(i-l) parę: argument i sumę częściową a(M)*x1-2 +a(M-l)*xi-3 + ... + a(M+2-i). (Proces P(l) zamiast sumy częściowej otrzymuje 0.)Proces P(i) przesyła do procesu P(i+l) otrzymany argument oraz sumę częściowąpomnożoną przez x z dodanym współczynnikiem a(M+l-i). Jak poprzednio, zmienna mamwskazuje, czy proces ma swój współczynnik. W tym przypadku proces nie musi pamiętać, zktórym strumieniem danych ma do czynienia, wskazuje na to bowiem typ otrzymywanegokomunikatu. Jeśli otrzyma pojedynczą liczbę, jest to na pewno współczynnik, jeśli parę liczb,jest to argument z sumą częściową. Sygnał KONIEC() informuje proces o tym, że skończyłysię obliczenia dla danego wielomianu i że teraz albo otrzyma jakiś współczynnik z nowegowielomianu, albo będzie jedynie przekazywał wyniki obliczone przez wcześniejsze procesy.comment N - liczba procesów liczących;[P(i:l..N):: wsp, mam: boolean; a, b, x, y: real;mam := false,*[P(i-l)?b -> [ mam -> P(i+l)!a[] not mam -> mam := true]a := b;[] P(i-l)?(x,y) -> [mam -> P(i-H)! (x,y*x+a)[] not mam -> P(i-H) ! (x,y)][] P(i-l)?KONIEC() -> mam := false;P(i+l)!KONIEC()]]145

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!