рдирд┐рдпрдорд┐рдд рдФрд░ рд╕рдВрджрд░реНрдн-рдореБрдХреНрдд рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдлреИрд▓рд╛рд╡ рдиреАрдВрдмреВ

рджреЛ рд╡рд┐рдХрд╛рд╕ рдиреАрдВрдмреВ рдРрд╕реЗ рдХрдерди рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдФрдкрдЪрд╛рд░рд┐рдХ рднрд╛рд╖рд╛рдУрдВ рдХреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрдХреНрд╖рд╛рдУрдВ рдХреА рд╕реАрдорд╛ рдХреЛ рд╕рд╛рдмрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдирд┐рдпрдорд┐рдд рдФрд░ рд╕рдВрджрд░реНрдн-рдореБрдХреНрддред рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдЗрди рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдорд╣рддреНрд╡ рдХреЛ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИ: рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ (рдирд┐рдпрдорд┐рдд рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╡рд┐рд╡рд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╛рдо рдореЗрдВ рдЕрдХреНрд╕рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдПрдВ рдЬрд┐рдирдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕рдВрджрд░реНрдн-рдореБрдХреНрдд рд╡реНрдпрд╛рдХрд░рдг рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡реЗ рдФрд░ рднреА рдЕрдзрд┐рдХ рд╣реИрдВред


рдиреАрдВрдмреВ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рджреЛрдиреЛрдВ рд░реВрдкреЛрдВ рдФрд░ рдкреНрд░рдорд╛рдгреЛрдВ рдореЗрдВ рд╕рдорд╛рди рд╣реИрдВред рдпрд╣ рдирд┐рдХрдЯрддрд╛ рдореБрдЭреЗ рдЗрддрдиреА рдЕрджреНрднреБрдд рд▓рдЧреА рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдкреВрд░рд╛ рд▓реЗрдЦ рд╕рдорд░реНрдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред


рдпреЛрдЬрдирд╛ рдпрд╣ рд╣реИ: рд╣рдо рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдирд┐рдпрдорд┐рдд рднрд╛рд╖рд╛рдПрдВ рдХреНрдпрд╛ рд╣реИрдВ рдФрд░ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдФрд░ рдкрд░рд┐рдорд┐рдд рдСрдЯреЛрдореЗрдЯрд╛ рдХреЗ рдмреАрдЪ рдХреНрдпрд╛ рд╕рдВрдмрдВрдз рд╣реИ, рд╣рдо рдирд┐рдпрдорд┐рдд рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд▓реЗрдореНрдорд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рд╕рд╛рдмрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдИ рднрд╛рд╖рд╛рдУрдВ рдХреА рдЕрдирд┐рдпрдорд┐рддрддрд╛ рд╕рд╛рдмрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░ рд╣рдо рд╕рдВрджрд░реНрдн-рдореБрдХреНрдд рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╛рди рдЪрд╛рд▓ рдХрд░рддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдпрд╣ рднреА рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рд╡реЗ рдирд┐рдпрдорд┐рдд рднрд╛рд╖рд╛рдУрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ рдФрд░ рдЖрдо рд╡реНрдпрд╛рдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЦреЛрдЬ рдХреА рдЧрдИ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪреЗрдВред рдЬрд╛рдУ!




рдХреЗрдбреАрдкреАрд╡реА рдХреЗрдПрд╕ рд╡реНрдпрд╛рдХрд░рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ


тАФ ( , ) . , , . : ╬г. , .. , : ╬╡.


(.. ), : . . , .


1.


: , , .


, :


  • тИЕ тАФ , ;
  • {╬╡} тАФ , , , ;
  • {a},aтИИ╬г тАФ , .

. A B тАФ , :


  • AтИкB тАФ ;
  • AтЛЕB={╬▒╬▓|╬▒тИИA,╬▓тИИB} тАФ : , A, B;
  • AтИЧ={╬▒1╬▒2...╬▒k|kтИИN0,╬▒iтИИA} тАФ : k A, k .

: N0=NтИк{0}, ,


: AтЛЕB=AB.


. , , . , PuTTY, - :


http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+

, url' , , , , url'. .


: ([0-9]), ([s]?), (a+ тАФ , aa*, .. ) . , , .


, ( ), | (), * () . , .


, :


abc(deтИЧf|de)


, :


abcde
abcdf
abcdef
abcdeef
abcdeeef
abcdeeeef

.


2.


. тАФ , . , (). .


. , , .


, , . , , . , тАФ , .


. , , , , .



, bab|aabтИЧca


. ai, aj, ak тАФ . ai ak , Lik. , ai aj Lij, aj ak тАФ Ljk. , aj , Ljj.


aj, ai ak ,


LтА▓ik=LikтИкLijтЛЕLтИЧjjтЛЕLjk


, aj. , , , .




, , . , - , ╬╡. , . , .


, . : ; , , , , ; , , , , .


, . , , :



, .


3.


L={anbn|nтИИN0}. ╬╡, ab, aabb, aaabbb . ? , .


, , . , , : , a тАФ b. , ? тАж , , ?


, ! , , .


. L nтИИN , тИАwтИИL,|w|тЙеn x, y, z, : w=xyz; yтЙа╬╡; |xy|тЙдn; тИАkтЙе0:xykzтИИL.

рд░рд╣рдиреЗ рджреЛ рдПрд▓ тАФ , n, wтИИL тАФ n.


w: a0, a1, a2, ..., am. , , m+1 , mтЙеn.


n , . ai тАФ , j. x тАФ i w, y тАФ w, ai aj, z тАФ w, aj an.


ai aj , ( !) , , , тИАkтИИN0:xykzтИИL.


ai, aj тАФ . , a0, a1, ..., ajтИТ1 . , n. , jтЙдn |xy|тЙдn, .


: , , ( .. ) , , .


L={anbn|nтИИN0}. n тАФ . anbn anbn=xyz,
|xy|тЙдn, , , xy a. y a, . xykz k>1 a, b , , L. L. , L !


(n)n, . .


4. -


тАФ , .


: () T () N; ╬г=NтИкT. SтИИN тАФ .


P. ╧Ж ╬г: (s1,s2)тИИ╧Ж, s1 s2. : . , (s1,s2)тИИ╧Ж, s1тЖТs2.


╬▓ ╬▒, ╬▒=xs1z, ╬▓=xs2z (s1,s2)тИИ╧Ж. , тАФ . : ╬▒тКв╬▓.


, ╬▓ ╬▒ ( ), s0=╬▒, s1, s2, ..., sk+1=╬▓, : siтКвsi+1. ╬▒тЗТ╬▓.


s , : sтИИTтИЧ, SтЗТs. , , .


, - (-), тАФ . , - , - .


, - :


SтЖТ(S)S
SтЖТ╬╡


, , . , - , . ; .


, , ┬л┬╗ :


def BuildPath(queue, parents, parent):
    path = []
    while parents[parent] != parent:
        path += [queue[parent]]
        parent = parents[parent]
    return path[::-1]

def Solve(rules, target):
    queue = ['S']
    parents = [0]

    idx = 0
    while idx < len(queue):
        current = queue[idx]

        for rule in rules:
            entryIdx = current.find(rule[0])
            while entryIdx != -1:
                new = current[:entryIdx] + rule[1] + current[entryIdx + len(rule[0]):]

                if new == target:
                    path = [queue[0]] + BuildPath(queue, parents, idx) + [new]
                    return path

                queue.append(new)
                parents.append(idx)

                entryIdx = current.find(rule[0], entryIdx + 1)

        idx += 1

, , , , , ; ! :


rules = [
    ("S", "(S)S"),
    ("S", ""),
]
target = "(()())()"
print('\n'.join(Solve(rules, target)))

S
(S)S
((S)S)S
((S)(S)S)S
((S)(S)S)(S)S
(()(S)S)(S)S
(()()S)(S)S
(()())(S)S
(()())()S
(()())()

- L={anbn|nтИИN0}:


rules = [
    ("S", "aSb"),
    ("S", ""),
]
target = "aaabbb"
print('\n'.join(Solve(rules, target)))

S
aSb
aaSbb
aaaSbbb
aaabbb

- , . , -, . , - : , , , .


, - .


5. -


L={anbncn|nтИИN0}. , - anbn, , , - :


SтЖТ╬╡
SтЖТAB
AтЖТaAb
BтЖТBc
AтЖТ╬╡
BтЖТ╬╡


anbncm. , m n? ┬л ┬╗ , , . , , . -,


- . - L nтИИN , тИАwтИИL,|w|тЙеn u, v, x, y, z, : w=uvxyz; vyтЙа╬╡; |vxy|тЙдn; тИАkтЙе0:uvkxykzтИИL.

, .


, . , . , :
SтЖТ╬╡
AтЖТBC
AтЖТa


, , : , тАФ . . .



- acd


, . n=2|N|+1, |N| тАФ , wтИИL,|w|тЙеn. . тАФ , .. . , m , |N|+1. , -. , .


B , , B. : , , .


B , SтКвuBz. B , B, BтЖТvBy, vyтЙа╬╡, .. , . B x.



:


  • SтКвuBz
  • BтКвvBy
  • BтКвx

, тИАkтИИN0SтКвuvkxykz, vyтЙа╬╡.


vxy. .. B, , |N|. , 2|N|+1=n. |vxy|тЙдn.


L={anbncn|nтИИN0}. , -. , n тАФ . anbncn.


, anbncn=uvxyz, |vxy|тЙдn vyтЙа╬╡, uvkxykz .


vxy a, c, .. w a c n b, vxy n.


uvkxykz k. , k>1 m, uvkxykz=ambmcm, L. , -!




6.


, - . , L={anbncn|nтИИN0}, .


:


SтЖТ╬╡
SтЖТaHbCE


E , b c. :


EтЖТ╬╡


H :


HтЖТaHbC
HтЖТ╬╡


, , C c. - !


CbтЖТbC
CEтЖТEc


! 5 , :


rules = [
    ("S", "aHbCE"),
    ("H", ""),
    ("H", "aHbC"),
    ("Cb", "bC"),
    ("CE", "Ec"),
    ("E", ""),
]
target = "aaabbbccc"
print('\n'.join(Solve(rules, target)))

S
aHbCE
aaHbCbCE
aaaHbCbCbCE
aaaHbbCCbCE
aaaHbbCbCCE
aaaHbbbCCCE
aaaHbbbCCEc
aaaHbbbCEcc
aaaHbbbEccc
aaaHbbbccc
aaabbbccc

: ┬л┬╗ ; C . .


( ) , . - .


All Articles