matematykaszkolna.pl
algorytm alg: Witam czy mógłby ktoś mi wyjaśnić na przykładowych danych najlepiej jak działa ponizszy algorytm tzn co konkretnie robi: Dla i = 0,1,...,n−1 wykonuj kroki K02...K03 K02: Jeśli P[i] < 0, to P[i] ← −P[i] K03: Jeśli a < 0, to V[i] ← (a div P[i]) × P[i] inaczej V[i] ← ((a + P[i] − 1) div P[i]) × P[i] ; podzielnika P[i] K04: s ← a − 1 K05: minv ← MAXC K06: Dla i = 0,1,...,n−1 wykonuj kroki K07...K08 K07: Jeśli V[i] = s, to V[i] ← V[i] + P[i] K08: Jeśli V[i] < minv, to minv ← V[i] ; K09: s ← minv K10: Jeśli s > b, K11: Pisz s ; K12: Idź do K05
15 sty 14:04
Mateusz: Algorytm ten znajduje w zadanym przedziale <a,b> wszystkie liczby podzielne przez zadane dzielniki ktore znajdują się w tablicy P[] korzysta sie tu miedzy innymi z takiej własnosci zapisu liczb jesli p:k=m+R to p=m*k+R k≠0 oczywiscie R−reszta z dzielenia w tym wypadku musi wynosic zero bo masz wykonac dzielenie całkowitoliczbowe
15 sty 16:38
Mateusz: Tak jako ciekawostke jeszcze warto dodać że algorytm ten jest duzo wydajniejszy od standardowego który w kazdych obiegach pętli głownej przechodzi przez liczby z przedziału <a,b> i sprawdza czy kolejna liczba dzieli się bez reszty przez ktorys z dzielnikow z tablicy P[]. ten sposob jest wydajniejszy poniewaz tutaj w kolejnych obiegach nie wykonuje sie dzielen tylko dodawania i przez to chociazby pętla nie wykonuje pustych przebiegow co przekłada sie na czas wykonania programu a to widać dopiero w przypadku duzego przedziału <a,b>i duzej rozieznosci dzielnikow w P[].
15 sty 19:15