Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Stránky: 1
Prosím uměl by to někdo vyřešit:
Oznacme bin(x) slovo nad abecedou {0, 1}, ktere je binarnim zapisem prirozeneho cisla x náleži N (N je množina přirozených čísel) bez vedoucich nul, takže napriklad bin(13) = 1101. Jedinou vyjimkou je cislo 0, kde definujeme, že bin(0) = 0.
Navrhnete bezkontextovou gramatiku generujici nasledujici jazyk L nad abecedou {0, 1, #}:
L = { bin(x)^R # bin(x + 1) | x náleží N}
Díky za pomoc
Offline

Když je bin(x) tvaru w0, je bin(x+1) tvaru w1.
Když je bin(x)=0, je bin(x+1)=1.
Když je bin(x) tvaru 11....1, je bin(x+1) tvaru 100...0.
Když je bin(x) tvaru w011....1, je bin(x+1) tvaru w100...0.
Slova v jazyce jsou proto jednoho ze čtyř typů
0w^R#w1
0#1
11...1#100...0
11...10w^R#w100...0
Neterminál A pro gnerování w^R#w najdeme snadno (to jistě bude ve skriptech, která tu stále dokola odkazuji) a pak jen vyrobíme ten neterminály
B -> 0A1
C -> 1B0 | 1C0
D -> #1 | 1D0
S -> 0#1| B | C | D
Píšu to dost narychlo, tak doufám, že tam není chyba a že je hlavně jasná myšlenka.
Offline

↑ Zdenek01: Ano, to je přesně ono. Je u toho zbytku vidět, jak se na to došlo?
Offline

↑ Zdenek01: Opravdu, neterminály C a D se dají takto spojit.
Offline
Stránky: 1