Funkcje licznikowo-logiczne

0

Mam wykazać że funkcje są licznikowo logiczne

f(x)=x div 2

Ponoć temat jest łatwy ale niewiele rozumiem, szukałem dużo na ten temat ale nie za dużo mi to dało. Przeczytałem sporo o maszynie turinga bo to temat powiązany ale zadania dalej nie umiem rozwiązać. Proszę o pomoc

0

I rozumiem że wg ciebie każdy ma pod ręką wszystkie możliwe definicje? Szczególnie takie wymyślone przez twojego wykładowcę / nieudolnie przez niego przetłumaczone? Jakbyś napisał definicje własności którą masz wykazać to może by ci ktoś pomógł...

0

Dostałem tylko tyle, jeszcze jest przykład b)

      {  0      x=y

g(x)= {
{ 1 x!=y

To powinna być jedna duża klamra

0

Ach tak? I w wykładzie wcale nie ma definicji "funkcji licznikowo logicznej"? Śmiem wątpić.

0

Nie

0

To skąd pomysł że o maszynie turinga bo to temat powiązany skoro google nie mówi na temat twoich funkcji licznikowo logicznych nic?

0

Wykładowca coś tam mruczał o tym pod nosem

0

Roziwązanie drugiego przykładu

  1. I(1,2,3)
  2. S(0)

Dlaczego liczby 1,2,3?
Te znaki I oraz S rozumiem ale nic poza tym

0

OMG chłopie, słabo mi sie robi powoli... Ale na wszystko dobra jest analogia:

Odpowiem ci na twoje pytanie jeśli rozwiążesz małą zagadkę, bardzo podobną do twojego problemu z tego tematu. Otóż wymyśliłem sobie pewną własność zdefiniowaną dla funkcji R->R. Własność tą nazywam "funkcja Shalomowa". Mam dla ciebie dwie funkcje:
a) f(x) = 5
b) f(x) = x
Czy mógłbyś sprawdzić czy te dwie funkcje są Shalomowe?
Podpowiem ci że że dla przykładu drugiego odpowiedź brzmi "nie", ale chciałbym żebyś mi wyjaśnił czemu.

Jak tylko rozwiążesz ten problem to wyjaśnie ci rozwiązanie twojego.

0

Bo tak przyjąłeś

3

W takim razie odpowiedź dla ciebie brzmi: bo z definicji wynika że taki jest właśnie wynik ;]

0

Czyli mam komórke 1 i porównuje ją z 2, jeśli są równe to ide do 3 instrukcji której nie ma i dostaje to wartośc zero. Natomiast jeśli są różne od siebie to następuje zwiększenie wartości dzięki S(0)?

0

Ktoś mi wytłumaczy co tu sie dokładnie dzieje?

f(n) = n div 2

1 I(1,0,8)
2 S(2)
3 I(1,2,8)
4 S(2)
5 S(0)
6 I(1,2,8)
7 I(1,1,0)

0
Mały Szczur napisał(a):

Wykładowca coś tam mruczał o tym pod nosem

Raczej bym stawiał na: "Coś tam do mnie dotarło, ale większość wyleciała drugim uchem, bo ciekawsze były koleżanki/koledzy/komputer/telefon/ściany" ;)

0

Mniejsza o to. Niech ktoś pomoże :(

0

Ja serio nie wiem czy to jest trolling jakiś czy kolega @Krwawy Młot nie potrafi pojąć że bez definicji problemu i oznaczeń NIKT, może oprócz twoich kolegów z roku którzy uważają na wykładach, nie będzie ci w stanie pomóc. Zresztą ja nadal czekam na rozwiązanie mojej zagadki z funkcjami Shalomowymi...

0

To w czymś pomoże?

0

Ty sobie chyba teraz robisz jaja chłopie. Tak, gdybyś od razu to wstawił to może ktoś by rozumiał o co ci w ogóle chodzi. Nie wiem czy zdajesz sobie sprawę, ale te oznaczenia funkcji przejscia w automacie NIE SĄ uniwersalne. Po prostu twój wykładowca je tak oznaczył bo miał taki kaprys. Nie wspomnę już nawet o tym że nawet polecenia swoich zadań nie zrozumiałeś, bo jak rozumiem treść twoich zadań to wcale nie było wykazać że funkcje są licznikowo logiczne tylko napisać "program" stosując zaproponowane funkcje przejścia w automacie/maszynie turinga.
Niemniej nadal za mało slajdów bo brakuje informacji o postaci kodowania danych wejściowych na taśmie.

0

To jest cały wykład na ten temat a pytanie brzmiało tak jak napiisalem. Byłbym wdzięczny gdyby ktoś się z tym zapoznał, dla was to chwila a ja dalej nie rozumiem. Wiem, powinienem to umieć ale nie umiem wiec trochę wyrozumiałośći

0
Krwawy Młot napisał(a):

Wiem, powinienem to umieć ale nie umiem wiec trochę wyrozumiałośći

świetne wytłumaczenie :D zastosuję w pracy

0

Obejdzmy się bez zbędnej ironii. Nie wszystkim łatwo wszystko przychodzi.

0

No i potrafisz mi wyjaśnić czemu nie umieściłeś tego pdfa w pierwszym poście? o_O Bo ja nie pojmuje.

1 I(1,0,8) -> if z[1] = z[0] goto 8
2 S(2) -> z[2]=z[2]+1
3 I(1,2,8) -> if z[1]=z[2] goto 8
4 S(2) -> z[2]=z[2]+1
5 S(0) -> z[0]=z[0]+1
6 I(1,2,8) -> if z[1]=z[2] goto 8
7 I(1,1,0) -> if z[1]=z[1] goto 0
8 koniec ;]

Czyli tak na oko: w z[1] mamy liczbę do podzielenia. Do z[2] dodajemy w każdym obiegu po 2, do z[1] dodajemy po 1 i czekamy aż w z[2] będzie tyle samo co w z[1]. Czyli działanie jest takie:
x = 6
wynik (z[0]) = 0
z[2] = 0
Pierwszy obieg:
z[2] = z[2]+1+1 = 2
wynik = z[0] = z[0]+1 = 1
Czy z[2] = x? Nie, wracamy na początek.
Drugi obieg:
z[2] = z[2]+1+1 = 4
wynik = z[0] = z[0]+1 = 2
Czy z[2] = x? Nie, wracamy na początek.
Trzeci obieg:
z[2] = z[2]+1+1 = 6
wynik = z[0] = z[0]+1 = 3
Czy z[2] = x? Tak! Wynik zajduje się w z[0] i wynosi 3.

W kodzie jest ten myk:

2 S(2) -> z[2]=z[2]+1
3 I(1,2,8) -> if z[1]=z[2] goto 8
4 S(2) -> z[2]=z[2]+1

Tzn że nie dodajemy od razu 2 do z[2] tylko dodajemy 1 i testujemy, bo trzeba brać pod uwagę liczby nieparzyste. 7/2 = 3 a nie 4.

edit: i mogę się z tobą założyć że treść zadania wcale nie była "wykazać że funkcja jest licznikowo logiczna" tylko raczej "wykazać że funkcja jest ML-obliczalna" albo coś w tym stylu jeśli już...

0

Dziękuję, o to chodziło. Szkoda że nie obyło się bez dywagacji z mojej winy. Pozdrawiam.

Ps. Treść brzmiała dokładnie tak jak napisałem, mogę sobie dać rękę uciąć.

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