Compare commits
No commits in common. "9990c0e8a113f4f5e4a844056b93bd583dc336ed" and "bae7ee7cd1f2210dc88acd0c38ace0e566ae8b10" have entirely different histories.
9990c0e8a1
...
bae7ee7cd1
@ -5,11 +5,7 @@
|
|||||||
<excludeFolder url="file://$MODULE_DIR$/.idea" />
|
<excludeFolder url="file://$MODULE_DIR$/.idea" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/.ipynb_checkpoints" />
|
<excludeFolder url="file://$MODULE_DIR$/.ipynb_checkpoints" />
|
||||||
</content>
|
</content>
|
||||||
<orderEntry type="jdk" jdkName="CS2333" jdkType="Python SDK" />
|
<orderEntry type="jdk" jdkName="Python 3.11 (jupyter)" jdkType="Python SDK" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
</component>
|
</component>
|
||||||
<component name="PackageRequirementsSettings">
|
|
||||||
<option name="removeUnused" value="true" />
|
|
||||||
<option name="keepMatchingSpecifier" value="false" />
|
|
||||||
</component>
|
|
||||||
</module>
|
</module>
|
@ -7,5 +7,5 @@
|
|||||||
<option name="show" value="ASK" />
|
<option name="show" value="ASK" />
|
||||||
<option name="description" value="" />
|
<option name="description" value="" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectRootManager" version="2" project-jdk-name="CS2333" project-jdk-type="Python SDK" />
|
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.11 (jupyter)" project-jdk-type="Python SDK" />
|
||||||
</project>
|
</project>
|
@ -1,144 +0,0 @@
|
|||||||
{
|
|
||||||
"cells": [
|
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"outputs": [],
|
|
||||||
"source": [
|
|
||||||
"from automata.fa.dfa import DFA\n",
|
|
||||||
"\n",
|
|
||||||
"# DFA which matches all binary strings ending in an odd number of '1's\n",
|
|
||||||
"my_dfa = DFA(\n",
|
|
||||||
"\tstates={'q0', 'q1', 'q2'},\n",
|
|
||||||
"\tinput_symbols={'0', '1'},\n",
|
|
||||||
"\ttransitions={\n",
|
|
||||||
"\t\t'q0': {'0': 'q0', '1': 'q1'},\n",
|
|
||||||
"\t\t'q1': {'0': 'q0', '1': 'q2'},\n",
|
|
||||||
"\t\t'q2': {'0': 'q2', '1': 'q1'}\n",
|
|
||||||
"\t},\n",
|
|
||||||
"\tinitial_state='q0',\n",
|
|
||||||
"\tfinal_states={'q1'}\n",
|
|
||||||
")\n",
|
|
||||||
"\n",
|
|
||||||
"my_dfa.show_diagram()\n"
|
|
||||||
],
|
|
||||||
"metadata": {
|
|
||||||
"collapsed": false
|
|
||||||
},
|
|
||||||
"id": "ad7a031539dffdd7",
|
|
||||||
"execution_count": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "markdown",
|
|
||||||
"source": [
|
|
||||||
"# Question 6\n",
|
|
||||||
"Let $S = \\{0,1\\}^*$ be the set of all strings of zero and ones, which includes the empty string $\\epsilon$.\n",
|
|
||||||
"Let $h : S \\rightarrow \\mathbb{Z}^*$ be the function defined by $h(x)$ equal the number of zeros in $x$ multiplied by the number of ones in $x$\n",
|
|
||||||
"For example, $h(00100011) = 5 \\times 3 = 15, and h(111) = 0 \\times 3 = 0$\n",
|
|
||||||
"\n",
|
|
||||||
"(a) Is $h$ one-to-one? No, because both strings $001$ and $110$ map to the same value, $2$\n",
|
|
||||||
"$2 \\times 1 = 2$ and $1 \\times 2 = 2$\n",
|
|
||||||
"\n",
|
|
||||||
"(b) Is $h$ onto? Yes, because you can find every non-negative integer by multiplying any number of ones by one zero $(1 \\times 1), (1 \\times 2), ...$\n",
|
|
||||||
"Let the number of zeros be exactly 1, and n be the number of ones, and m be any non-negative integer\n",
|
|
||||||
"$h(n) = m, 1n = m, n = m$ "
|
|
||||||
],
|
|
||||||
"metadata": {
|
|
||||||
"collapsed": false
|
|
||||||
},
|
|
||||||
"id": "b67364155fcb1072"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "markdown",
|
|
||||||
"source": [
|
|
||||||
"# Question 8\n",
|
|
||||||
"(a)\n",
|
|
||||||
"This function is not one-to-one (111110, 1111100 are both 5)\n",
|
|
||||||
"This function is onto (10, 110, 1110, 11...0 is all non-negative integers)\n",
|
|
||||||
"\n",
|
|
||||||
"(b)\n",
|
|
||||||
"This function is not one-to-one (11111, 01111 are both 1)\n",
|
|
||||||
"This function is onto (All strings are mapped to, as you can simply pad any character with any 4 characters first)\n",
|
|
||||||
"\n",
|
|
||||||
"(c)\n",
|
|
||||||
"This function is not one-to-one (Quebec, Yukon both are 0)\n",
|
|
||||||
"This function is not onto (None of the provinces contain 3 or 5 a's"
|
|
||||||
],
|
|
||||||
"metadata": {
|
|
||||||
"collapsed": false
|
|
||||||
},
|
|
||||||
"id": "ead9052998c5edf6"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "markdown",
|
|
||||||
"source": [
|
|
||||||
"# Question 9\n",
|
|
||||||
"Consider the relation $R$ defined on the set $\\mathbb{Z}$ as follows:\n",
|
|
||||||
"$$R = \\{(m,n) | m,n \\in \\mathbb{Z}, mn < 0\\}$$\n",
|
|
||||||
"\n",
|
|
||||||
"(a) Is the relation reflexive? No\n",
|
|
||||||
"For every integer $x$, $x \\times x = x^2$, and by the definition of squares, can never be less than zero\n",
|
|
||||||
"\n",
|
|
||||||
"(b) Is the relation symmetric? Yes\n",
|
|
||||||
"Let $x, y$ be a pair of integers in the relation and $z$ be the product of $x and y$, so $x \\times y = -z$\n",
|
|
||||||
"Since multiplication is commutative, the position of $x$ and $y$ do not matter, so $(x,y)$ and $(y,x)$ are in the relation\n",
|
|
||||||
"(Both $x \\times y$ and $y \\times x$ equal $-z$)\n",
|
|
||||||
"\n",
|
|
||||||
"(c) Is the relation transitive? No\n",
|
|
||||||
"Let $a = 1, b = -2, c = 3$\n",
|
|
||||||
"$1 \\times -2 = -2$ and $-2 \\times 3 = -6$, however $1 \\times 3 = 3$, which is $> 0$\n",
|
|
||||||
"$\\therefore$ this relation is not transitive\n",
|
|
||||||
"\n",
|
|
||||||
"(d) Is this an equivalence relation? No, because these three conditions are not met"
|
|
||||||
],
|
|
||||||
"metadata": {
|
|
||||||
"collapsed": false
|
|
||||||
},
|
|
||||||
"id": "874c8dbcc345edad"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "markdown",
|
|
||||||
"source": [
|
|
||||||
"# Question 11\n",
|
|
||||||
"Consider the relation $R$ defined on the set $\\mathbb{Z}$ as follows:\n",
|
|
||||||
"$$\\forall m,n \\in \\mathbb{Z}, (m,n \\in R \\text{ if and only if } m + n = 2k \\text{ for some integer } k$$\n",
|
|
||||||
"\n",
|
|
||||||
"(a) Is this relation reflexive? Yes\n",
|
|
||||||
"For every integer $x$, $x + x = 2x$, therefore it is reflexive\n",
|
|
||||||
"\n",
|
|
||||||
"(b) Is this relation symmetric? Yes\n",
|
|
||||||
"Let $x, y$ be a pair of integers in the relation and $z$ be the sum of these integers, so $x + y = 2z$\n",
|
|
||||||
"Since addition is commutative, the position of $x$ and $y$ do not matter, so $(x,y) and $(y,x) are in the relation\n",
|
|
||||||
"(Both $x + y$ and $y + x$ equal $2z$)\n",
|
|
||||||
"\n",
|
|
||||||
"(c) Is this relation transitive? Yes\n",
|
|
||||||
"Let $(a,b)$ and $(b,c)$ be valid pairs of integers of the relation $R$\n",
|
|
||||||
"$a + b = 2n$, and $b + c = 2p$"
|
|
||||||
],
|
|
||||||
"metadata": {
|
|
||||||
"collapsed": false
|
|
||||||
},
|
|
||||||
"id": "5fe823d05dd08b12"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"metadata": {
|
|
||||||
"kernelspec": {
|
|
||||||
"display_name": "Python 3",
|
|
||||||
"language": "python",
|
|
||||||
"name": "python3"
|
|
||||||
},
|
|
||||||
"language_info": {
|
|
||||||
"codemirror_mode": {
|
|
||||||
"name": "ipython",
|
|
||||||
"version": 2
|
|
||||||
},
|
|
||||||
"file_extension": ".py",
|
|
||||||
"mimetype": "text/x-python",
|
|
||||||
"name": "python",
|
|
||||||
"nbconvert_exporter": "python",
|
|
||||||
"pygments_lexer": "ipython2",
|
|
||||||
"version": "2.7.6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nbformat": 4,
|
|
||||||
"nbformat_minor": 5
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user