From d64714c84df2968ea6042f0ef5c44201450591eb Mon Sep 17 00:00:00 2001 From: Price Hiller Date: Fri, 9 Feb 2024 13:20:50 -0600 Subject: [PATCH] cs-2233: complete assignment 3 --- .../CS-2233/Assignment-3/Assignment.pdf | Bin 0 -> 42909 bytes Spring-2023/CS-2233/Assignment-3/Solution.typ | 161 ++++++++++++++++++ Spring-2023/CS-2233/TODO.org | 8 +- 3 files changed, 168 insertions(+), 1 deletion(-) create mode 100644 Spring-2023/CS-2233/Assignment-3/Assignment.pdf create mode 100644 Spring-2023/CS-2233/Assignment-3/Solution.typ diff --git a/Spring-2023/CS-2233/Assignment-3/Assignment.pdf b/Spring-2023/CS-2233/Assignment-3/Assignment.pdf new file mode 100644 index 0000000000000000000000000000000000000000..994b48417b85832b397f6b4118fdabe0197b7746 GIT binary patch literal 42909 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 literal 0 HcmV?d00001 diff --git a/Spring-2023/CS-2233/Assignment-3/Solution.typ b/Spring-2023/CS-2233/Assignment-3/Solution.typ new file mode 100644 index 0000000..251a75b --- /dev/null +++ b/Spring-2023/CS-2233/Assignment-3/Solution.typ @@ -0,0 +1,161 @@ +#let m(math) = align(center)[$#math$] +#let pgbreakmsg = align(center, text(blue, weight: "black", size: 1.5em)[See Next Page\ ↓]) + +#let solve(work, solution) = align( + center, +)[ + #let solution = align(center, block( + inset: 5pt, + stroke: blue + .3pt, + fill: rgb(0, 149, 255, 15%), + radius: 4pt, + )[#align(left)[#solution]]) + + #if work == [] [ + #solution + ] else [ + #block(inset: 6pt, radius: 4pt, stroke: luma(50%) + .5pt, fill: luma(90%))[ + #align(left, text(font: "Liberation Sans", size: .85em, work)) + #solution + ] + ] +] + +#let problem-header(number, points) = [== Problem #number. #text(weight: "regular")[[#points + points]]] + +#let problem(number, points, body) = [ + == Problem #number. #text(weight: "regular")[[#points points]] + #body +] + +#set page(margin: (x: .4in, y: .4in)) +#set table(align: center) + +_*Price Hiller*_ +#v(-.8em) +_*zfp106*_ +#v(-.8em) +Homework Assignment 3 +#v(-.8em) +CS 2233 +#v(-.8em) +Section 001 + +#align( + center, + block( + inset: 6pt, + radius: 4pt, + stroke: luma(50%) + .5pt, + fill: luma(90%), + )[If you are interested in viewing the source code of this document, you can do so + by clicking + #text( + blue, + link( + "https://git.orion-technologies.io/Price/college/src/branch/Development/Spring-2023/CS-2233/Assignment-3/Solution.typ", + "here", + ), + ).], +) += Problems + +#problem( + 1, + 10, +)[ + - Complete all participation activities in zyBook sections $2.1$, $2.2$, and $2.4$-$2.6$. + #solve[][Done] +] + +#problem( + 2, + 10, +)[ + Prove that if $a$, $b$, and $c$ are odd integers, then $a + b + c$ is an odd + integer. + + #solve[ + An odd integer is expressed as $2k + 1$ where $k$ is some integer. + ][ + 1. Suppose that $a$, $b$, and $c$ are odd integers. I shall prove that $a + b + c$ is an odd + integer. + 2. Since $a$, $b$, and $c$ are integers, $a + b + c$ is also an integer + 3. Since $a$ is odd, there is an integer $q$ such that $a = 2q + 1$ + 4. Since $b$ is odd, there is an integer $w$ such that $b = 2w + 1$ + 5. Since $c$ is odd, there is an integer $e$ such that $c = 2e + 1$ + 6. $a + b + c = (2q + 1) + (2w + 1) + (2e + 1) = 2(q + w + e + 1) + 1$ + 7. Let $m = q + w + e + 1$ + 8. Since $q$, $w$, $e$, and $1$ are integers, $m$ must be an integer + 9. Since $a + b + c = 2m + 1$, therefore $a + b + c$ is + an odd integer + ] +] +#problem( + 3, + 30, +)[ + Recall that a rational number can be put in the form $p/q$ where $p$ and $q$ are + integers and $q ≠ + 0$. Prove the following for any rational number, $x$: + + a.) If $x$ is rational, then $x - 5$ is rational + #solve[][ + 1. Let $x$ be a rational number. I will show that $x - 5$ is also a rational + number. + 2. Since $x$ is rational, there exists integers $p$ and $q$ such that $x = p/q$ and $q ≠ 0$. + 3. Thus $x - 5 = p/q - 5$ + 4. Since $5$ is an integer, $5$ is also a rational number written as $5/1$ + 5. Therefore $p/q - 5 = p/q - 5/1$ + 6. Working $p/q - 5/1$ we get $(p - 5q)/(q × 1)$ which is $(p - 5q)/q$ + 7. Since $x - 5$ is equal to the ratio of two integers where the deonominator $≠ 0$, then $x - 5$ is a rational number + ] + b.) If $x - 5$ is rational, then $x/3$ is rational + + #solve[][ + 1. Let $x - 5$ be rational. I will show that $x/3$ is also rational + 2. $x - 5 = p/q$ for some integers $p$, $q$, where $q ≠ 0$ + 3. Add $5$ to both sides giving $x = p/q + 5$ + 4. Divide both sides by $3$ giving $x/3 = (p/q + 5)/3$ + 5. $(p/q + 5)/3$ is also rational + 6. Therefore $x/3$ is rational + ] +\ + c.) If $x/3$ is rational, then $x$ is rational + #solve[][ + 1. Let $x/3$ be rational. I will show that $x$ is rational + 2. $x/3 = p/q$ for some integers $p$ and $q$ where $q ≠ 0$ + 3. Multiply both sides of the equation by $q$ to get $x = 3p/q$ + 4. Since $p$, $q$, and $3$ are integers, $x$ is rational + ] +] + +#problem( + 4, + 20, +)[ + Consider the following statement: For all integers $m$ and $n$, if $m - n$ is + odd, then $m$ is odd or $n$ is odd. + + a.) Prove the statement using a proof by contrapositive + #solve[][ + 1. Let $m$ and $n$ be integers. I will show that if $m$ is even and $n$ is even + then $m - n$ is even + 2. Since $m$ is even, there exists an integer $k$ such that $m = 2k$ + 3. Since $n$ is even, there exists an integer $j$ such that $n = 2j$ + 4. Thus, $m - n = 2k - 2j = 2(k - j )$ + 5. Since $k - j$ is an integer, $2(k - j)$ is even + 6. Therefore, if $m$ is even and $n$ is even, $m - n$ is even + ] + b.) Prove the statement by using a proof by contradiction + #solve[][ + 1. Let $m$ and $n$ be integers. Assume then that $m - n$ is odd, but both $m$ and $n$ are + even + 2. If $m$ is even, then $m = 2k$ for some integer $k$ + 3. If $n$ is even, then $n = 2j$ for some integer $j$ + 4. Then $m - n = 2k - 2j = 2(k - j)$ + 5. But $2(k - j)$ is even, which contradicts that $m - n$ is odd + 6. Thus, if $m - n$ is odd, then $m$ must be odd or $n$ must be odd + ] +] diff --git a/Spring-2023/CS-2233/TODO.org b/Spring-2023/CS-2233/TODO.org index 9b00fbe..f11db8f 100644 --- a/Spring-2023/CS-2233/TODO.org +++ b/Spring-2023/CS-2233/TODO.org @@ -1,4 +1,10 @@ -* DONE Assignment 1 +* DONE Assignment 1 :college:cs2233: DEADLINE: <2024-01-26 Fri> SCHEDULED: <2024-01-25 Thu> Complete Zybooks section ~1~ and the first homework assignment + +* TODO Assignment 3 :college:cs2233: +DEADLINE: <2024-02-11 Sun> SCHEDULED: <2024-02-11 Sun> + +Complete Zybooks section ~2~ and the third homework assignment +