Machines, Languages, and Computation이란 책을 보고 있는데 2단원 연습문제를 못 풀겠어서 질문드립니다.
유한 집합 V가 주어졌다고 하자.
임의의 L ⊆ V^*에 대하여 (1)이 성립할 때 그리고 오직 그럴 때에만 (2)가 성립함을 보여라.
(1) (∀α∈L) (∀β∈L) (α β = β α).
(2) (∃ω∈V^*) (L ⊆ { ω^n : n ∈ {0, 1, 2, ...} }).
여기서:
V^*는 V의 원소들을 원소로 가지는 모든 finite sequence들의 집합입니다. 즉, V = {'1', '2'}일 때, V^* = {"", "1", "2", "11", "12", "21", "22", "111", ...}입니다.
문자열 α β는 문자열 α 뒤에 문자열 β를 접합한 것입니다. 즉, α = "12"이고 β = "ab"일 때, α β = "12ab"이고 β α = "ab12"입니다.
0 이상의 정수 n에 대하여, 문자열 ω^n은 문자열 ω을 n번 반복한 것입니다. 즉, ω = "oxx"일 때, ω^3 = "oxxoxxoxx"이고 ω^0 = ""입니다.
읽어주셔서 감사합니다.
대수 맞아요. Free group 찾아보세요 - dc App
역원을 허용하지 않는것같은데, 그러면 Free group에서 일부만 추ㅕ서 모노이드를 만들었다고 봐야겠네요 - dc App
앗 답글 감사드립니다. _^*이 Kleene Star 연산자라고 해서, free monoid라고 한 걸 어디선가 보긴 했어요.
그나저나 어떻게 해야지 풀 수 있을까요?
(2)에서 (1)로 가는 건 자명하고, (1)에서 (2)로 가는건 알파와 베타를 각각 a1a2a3a4...am, b1b2b3b4...bn으로 두고 증명하면 될 것 같습니다 - dc App
죄송하지만, (1)에서 (2)로 가는 걸 보이기 위해, 임의의 alpha ㅌ L에 대하여 alpha = omega^n이게 하는 omega ㅌ V^*를 어떻게 찾아야 되는지를 알려주실 수 있나요?
유클리드 알고리즘이라고 하던가요? 그 자연수의 나머지 있는 나눗셈을 써보세요. 좀 더 직접적으로 힌트를 주자면, m<n인 경우 n을 m으로 나눈 나머지 r을 생각해 보세요(이런 식의 나눗셈을 여러 번 반복해야 할 것 같습니다). - dc App
정말 감사드립니다 ㅠㅠ 복 많이 받으세요