algorytm
ula: Jak zpisać taki algorytm
Mamy wyraz np "abecadło" i podajemy liczbę 5. Wtedy dzielimy wyraz tak abecd (5) ,dłoa (4)
bec (3), ad (2) ,ł (1).
Algorytm ma właśnie w ten sposób działać i podawać tę literę ostatnią z 1, w tym przypadku to
"ł"
8 kwi 22:04
Maciess: Jak masz zapisac? Schemat blokowy, pseudokod czy wybrany język? I chesz wskazówki czy gotowiec
8 kwi 22:33
ula: Pseudkod może na to jakiś szybki sposób
8 kwi 22:39
Maciess: Wydaje mi się, że tak może byc.
Mamy jakąś tablice T wypełnioną znakami (indeksowana od 1 do n)
Wprowadzamy a.
Wyswietlamy element z tablicy o indeksie b mod n.
8 kwi 22:44
Maciess: A sorry, teraz czytam ze ma działac w ten sposób, a moja wersja powinna dawać taki wynik po
prostu.
8 kwi 22:45
ula: A jakoś prościej?
8 kwi 23:11
Maciess: W sensie to jest wg mnie najprosciej
A tak to zaraz Ci coś rekurencyjnego napisze.
8 kwi 23:13
Saizou : Jest to proste, a rozumiesz co napisałem
Maciess
8 kwi 23:19
wredulus_pospolitus:
Poprawka do 22:44
Wprowadzamy 'a'
wypluwamy literę o indeksie b (mod n)
8 kwi 23:24
Maciess: Błąd w druku, przepraszam. I ten przykład jest dobrze? Czy uruchomienie dla 4 powinno sie na
pewno zaczynać od d
8 kwi 23:35
Maciess: Dobra już widze. W 5 masz literowke i ma się konczyć na 'a' a nie na 'd'
8 kwi 23:36
Maciess: I teraz tak myśle (choć nie umiem wyliczać złożoności), że nawet rekurencja nie będzie szybsza
niż to co Ci napisałem.
8 kwi 23:39
Saizou :
Maciess możesz powołać się na tw. o rekurencji uniwersalnej
8 kwi 23:40
ula: Chodzi aby tylko podać tę ostatnią literę
8 kwi 23:45
Saizou :
algorytm bardzo naiwny
Niech n − liczba liter w wyrazie
1) wczytujemy liczbę k (u nas k=5)
| k+1 | |
2) obliczamy sumę k+(k−1)+(k−2)+...+2+1= |
| k |
| 2 | |
(u nas 5+4+3+2+1=15)
dopóki k≥0 wykonuj
3) jeśli k ≤ n to wydrukuj A[k] (zakończ program)
4) jeśli k > n to k ← k−n
Zobaczmy jak to działa
k=15 czyli k ≥ 0 (wykonujemy krok (4), bo 15 > 8), czyli pod k podstawiamy 15−8=7
k=7 ≥ 0 (wykonujemy krok (3), bo 7 < 8), czyli wypisujemy A[7]=ł
i kończymy
8 kwi 23:58
Saizou :
Obliczanie sumy z 2) możesz zrobić też przy pomocy pętli
9 kwi 00:02
ula: Dziekuję serdecznie przeanalizuje
9 kwi 00:05