Regular Grammar
$begingroup$
Devise a regular grammar in normal form that generates the language L.
Let L be the language consisting of all binary numbers
divisible by 4.
I know the different aspects needed to be generated:
starting point, non terminals and production rules etc.
Need help on how to generate though
discrete-mathematics computer-science regular-language context-free-grammar
$endgroup$
add a comment |
$begingroup$
Devise a regular grammar in normal form that generates the language L.
Let L be the language consisting of all binary numbers
divisible by 4.
I know the different aspects needed to be generated:
starting point, non terminals and production rules etc.
Need help on how to generate though
discrete-mathematics computer-science regular-language context-free-grammar
$endgroup$
$begingroup$
hint you need to generate ${1*}00$ strings
$endgroup$
– zwim
Jan 23 at 21:01
$begingroup$
@zwim Would be in form {p w q | p E {1}*, w E{1,0}* , q^n E {0} , n>=2 }
$endgroup$
– Sue
Jan 23 at 21:27
add a comment |
$begingroup$
Devise a regular grammar in normal form that generates the language L.
Let L be the language consisting of all binary numbers
divisible by 4.
I know the different aspects needed to be generated:
starting point, non terminals and production rules etc.
Need help on how to generate though
discrete-mathematics computer-science regular-language context-free-grammar
$endgroup$
Devise a regular grammar in normal form that generates the language L.
Let L be the language consisting of all binary numbers
divisible by 4.
I know the different aspects needed to be generated:
starting point, non terminals and production rules etc.
Need help on how to generate though
discrete-mathematics computer-science regular-language context-free-grammar
discrete-mathematics computer-science regular-language context-free-grammar
asked Jan 23 at 20:46
SueSue
126
126
$begingroup$
hint you need to generate ${1*}00$ strings
$endgroup$
– zwim
Jan 23 at 21:01
$begingroup$
@zwim Would be in form {p w q | p E {1}*, w E{1,0}* , q^n E {0} , n>=2 }
$endgroup$
– Sue
Jan 23 at 21:27
add a comment |
$begingroup$
hint you need to generate ${1*}00$ strings
$endgroup$
– zwim
Jan 23 at 21:01
$begingroup$
@zwim Would be in form {p w q | p E {1}*, w E{1,0}* , q^n E {0} , n>=2 }
$endgroup$
– Sue
Jan 23 at 21:27
$begingroup$
hint you need to generate ${1*}00$ strings
$endgroup$
– zwim
Jan 23 at 21:01
$begingroup$
hint you need to generate ${1*}00$ strings
$endgroup$
– zwim
Jan 23 at 21:01
$begingroup$
@zwim Would be in form {p w q | p E {1}*, w E{1,0}* , q^n E {0} , n>=2 }
$endgroup$
– Sue
Jan 23 at 21:27
$begingroup$
@zwim Would be in form {p w q | p E {1}*, w E{1,0}* , q^n E {0} , n>=2 }
$endgroup$
– Sue
Jan 23 at 21:27
add a comment |
1 Answer
1
active
oldest
votes
$begingroup$
A binary string is divisible by 4 if and only if it is $0$ or ends in $00$.
So, you could pretty easily do something like
$$
begin{align*}
S&rightarrow0\
S&rightarrow 1N\
N&rightarrow 0N\
N&rightarrow 0F\
F&rightarrow0
end{align*}
$$
Explanation:
Our underlying alphabet (set of terminals) is ${0,1}$. $S$ is our start, $N$ is a non-terminal representing the part of any such non-zero number that follows the initial $1$, and $F$ is a non-terminal indicating that we've put in the first of our two final $0$'s.
From $S$ you either go straight to $0$ and are done, or you have an initial $1$. Following an initial $1$ is any number of $0$'s and $1$'s, followed by a final $00$.
$endgroup$
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "69"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3085052%2fregular-grammar%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
A binary string is divisible by 4 if and only if it is $0$ or ends in $00$.
So, you could pretty easily do something like
$$
begin{align*}
S&rightarrow0\
S&rightarrow 1N\
N&rightarrow 0N\
N&rightarrow 0F\
F&rightarrow0
end{align*}
$$
Explanation:
Our underlying alphabet (set of terminals) is ${0,1}$. $S$ is our start, $N$ is a non-terminal representing the part of any such non-zero number that follows the initial $1$, and $F$ is a non-terminal indicating that we've put in the first of our two final $0$'s.
From $S$ you either go straight to $0$ and are done, or you have an initial $1$. Following an initial $1$ is any number of $0$'s and $1$'s, followed by a final $00$.
$endgroup$
add a comment |
$begingroup$
A binary string is divisible by 4 if and only if it is $0$ or ends in $00$.
So, you could pretty easily do something like
$$
begin{align*}
S&rightarrow0\
S&rightarrow 1N\
N&rightarrow 0N\
N&rightarrow 0F\
F&rightarrow0
end{align*}
$$
Explanation:
Our underlying alphabet (set of terminals) is ${0,1}$. $S$ is our start, $N$ is a non-terminal representing the part of any such non-zero number that follows the initial $1$, and $F$ is a non-terminal indicating that we've put in the first of our two final $0$'s.
From $S$ you either go straight to $0$ and are done, or you have an initial $1$. Following an initial $1$ is any number of $0$'s and $1$'s, followed by a final $00$.
$endgroup$
add a comment |
$begingroup$
A binary string is divisible by 4 if and only if it is $0$ or ends in $00$.
So, you could pretty easily do something like
$$
begin{align*}
S&rightarrow0\
S&rightarrow 1N\
N&rightarrow 0N\
N&rightarrow 0F\
F&rightarrow0
end{align*}
$$
Explanation:
Our underlying alphabet (set of terminals) is ${0,1}$. $S$ is our start, $N$ is a non-terminal representing the part of any such non-zero number that follows the initial $1$, and $F$ is a non-terminal indicating that we've put in the first of our two final $0$'s.
From $S$ you either go straight to $0$ and are done, or you have an initial $1$. Following an initial $1$ is any number of $0$'s and $1$'s, followed by a final $00$.
$endgroup$
A binary string is divisible by 4 if and only if it is $0$ or ends in $00$.
So, you could pretty easily do something like
$$
begin{align*}
S&rightarrow0\
S&rightarrow 1N\
N&rightarrow 0N\
N&rightarrow 0F\
F&rightarrow0
end{align*}
$$
Explanation:
Our underlying alphabet (set of terminals) is ${0,1}$. $S$ is our start, $N$ is a non-terminal representing the part of any such non-zero number that follows the initial $1$, and $F$ is a non-terminal indicating that we've put in the first of our two final $0$'s.
From $S$ you either go straight to $0$ and are done, or you have an initial $1$. Following an initial $1$ is any number of $0$'s and $1$'s, followed by a final $00$.
answered Jan 23 at 22:43
Nick PetersonNick Peterson
26.8k23962
26.8k23962
add a comment |
add a comment |
Thanks for contributing an answer to Mathematics Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3085052%2fregular-grammar%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
$begingroup$
hint you need to generate ${1*}00$ strings
$endgroup$
– zwim
Jan 23 at 21:01
$begingroup$
@zwim Would be in form {p w q | p E {1}*, w E{1,0}* , q^n E {0} , n>=2 }
$endgroup$
– Sue
Jan 23 at 21:27