diff --git a/docs/Public/Math/Sets/cartesian product.md b/docs/Public/Math/Sets/cartesian product.md new file mode 100644 index 000000000..75f18373b --- /dev/null +++ b/docs/Public/Math/Sets/cartesian product.md @@ -0,0 +1,9 @@ +Let $A$ and $B$ be some [[set]]. The set of all ordered pairs $(a, b)$ such that $a\in A$ and $b \in B$ is called the *cartesian product*. +$$ +A\times B = \{(a, b)| a\in A, b\in B\} +$$ +Example: +Let $A = \{m, p\}$, $B = \{5, 7, 9\}$. Then, +$$ +A\times B = \{(m, 5), (m, 7), (m, 9), (p, 5), (p, 7), (p, 9)\} +$$ diff --git a/docs/Public/Math/Sets/empty set.md b/docs/Public/Math/Sets/empty set.md new file mode 100644 index 000000000..d44718497 --- /dev/null +++ b/docs/Public/Math/Sets/empty set.md @@ -0,0 +1 @@ +The *empty set* is the [[set]] with no elements. There is no such $x\in \emptyset$. \ No newline at end of file diff --git a/docs/Public/Math/Sets/intersection.md b/docs/Public/Math/Sets/intersection.md new file mode 100644 index 000000000..4845298f0 --- /dev/null +++ b/docs/Public/Math/Sets/intersection.md @@ -0,0 +1,6 @@ +The *intersection* of two sets contains only the elements contained in both [[set]]. + +The *intersection* of $A$ and $B$ is: +$$ +A \cup B = \{ x | x\in A \land x\in B\} +$$ \ No newline at end of file diff --git a/docs/Public/Math/Sets/power set.md b/docs/Public/Math/Sets/power set.md new file mode 100644 index 000000000..29b4e8d66 --- /dev/null +++ b/docs/Public/Math/Sets/power set.md @@ -0,0 +1,6 @@ +If $A$ is a set, then the *power set* of $A$ is the set whose elements are the [[subset]] of A, and it is denoted by $P(A)$. +$$ +P(A) = \{ B | B \in A \} +$$ + + \ No newline at end of file diff --git a/docs/Public/Math/Sets/rational.md b/docs/Public/Math/Sets/rational.md index e69de29bb..33dae7a63 100644 --- a/docs/Public/Math/Sets/rational.md +++ b/docs/Public/Math/Sets/rational.md @@ -0,0 +1,4 @@ +A *rational* is a number that can be expressed as the fraction of two [[integer]], as in +$$ +\frac{p}{q} +$$ diff --git a/docs/Public/Math/Sets/relation.md b/docs/Public/Math/Sets/relation.md new file mode 100644 index 000000000..1e12489eb --- /dev/null +++ b/docs/Public/Math/Sets/relation.md @@ -0,0 +1,3 @@ +A *relation* $\mathbb{R}$ from $A$ to $B$ is a [[subset]] of $A\times B$. + +A *relation* $\mathbb{R}$ from $A$ to $A$ is also called a *relation* on $A$. \ No newline at end of file diff --git a/docs/Public/Math/Sets/set difference.md b/docs/Public/Math/Sets/set difference.md new file mode 100644 index 000000000..f8986d496 --- /dev/null +++ b/docs/Public/Math/Sets/set difference.md @@ -0,0 +1,4 @@ +The *set difference* of $A$ and $B$ is: +$$ +A - B = \{ x | x\in A \land x\not \in B \} +$$ diff --git a/docs/Public/Math/Sets/set equality.md b/docs/Public/Math/Sets/set equality.md new file mode 100644 index 000000000..dca383665 --- /dev/null +++ b/docs/Public/Math/Sets/set equality.md @@ -0,0 +1,4 @@ +$A$ and $B$ have *set equality*, $A=B$ if: +$$ +A\subseteq B \text{ and } B\subseteq A +$$ diff --git a/docs/Public/Math/Sets/subset.md b/docs/Public/Math/Sets/subset.md new file mode 100644 index 000000000..7ef8795de --- /dev/null +++ b/docs/Public/Math/Sets/subset.md @@ -0,0 +1,10 @@ +A *subset* is a [[set]] which all the elements are contained in another set. + +$A$ is a *subset* of $B$ means: +$$ +\text{If }x\in A, \text{ then } x\in B +$$ +We write: +$$ +a\subseteq B +$$ diff --git a/docs/Public/Math/Sets/tuple.md b/docs/Public/Math/Sets/tuple.md new file mode 100644 index 000000000..17f875ea5 --- /dev/null +++ b/docs/Public/Math/Sets/tuple.md @@ -0,0 +1 @@ +A *tuple* is an ordered [[set]] with $n$ elements. \ No newline at end of file diff --git a/docs/Public/Math/Sets/union.md b/docs/Public/Math/Sets/union.md new file mode 100644 index 000000000..9cd77b5d1 --- /dev/null +++ b/docs/Public/Math/Sets/union.md @@ -0,0 +1,6 @@ +The *union* of two sets contains all the elements contained in either [[set]]. + +The *union* of $A$ and $B$ is: +$$ +A \cup B = \{ x | x\in A \lor x\in B\} +$$ \ No newline at end of file diff --git a/docs/Public/Software/Computer Architecture/D latch.md b/docs/Public/Software/Computer Architecture/D latch.md new file mode 100644 index 000000000..2520fc9fd --- /dev/null +++ b/docs/Public/Software/Computer Architecture/D latch.md @@ -0,0 +1,3 @@ +A *D latch* is type of [[latch]] that has one input: Data ($D$). The output of the *D latch* is the same as the $D$ input as long as the [[clock]] signal is high. [^1] + +[^1]: https://www.geeksforgeeks.org/latches-in-digital-logic/# \ No newline at end of file diff --git a/docs/Public/Software/Computer Architecture/Mealy state machine.md b/docs/Public/Software/Computer Architecture/Mealy state machine.md new file mode 100644 index 000000000..903da230d --- /dev/null +++ b/docs/Public/Software/Computer Architecture/Mealy state machine.md @@ -0,0 +1,4 @@ +A *Mealy state machine* is a [[finite state machine]] whose current outputs are dependent on the current and previous state. [^1] + +In other words, the output is built on the edges. +[^1]: https://www.geeksforgeeks.org/mealy-and-moore-machines-in-toc/# \ No newline at end of file diff --git a/docs/Public/Software/Computer Architecture/Moore state machine.md b/docs/Public/Software/Computer Architecture/Moore state machine.md new file mode 100644 index 000000000..4f9e82fbd --- /dev/null +++ b/docs/Public/Software/Computer Architecture/Moore state machine.md @@ -0,0 +1,5 @@ +A *Moore state machine* is a [[finite state machine]] whose current outputs are dependent only on the current state. [^1] + +In other words, the output will be 'inside' the state. + +[^1]: https://www.geeksforgeeks.org/mealy-and-moore-machines-in-toc/# \ No newline at end of file diff --git a/docs/Public/Software/Computer Architecture/SR latch.md b/docs/Public/Software/Computer Architecture/SR latch.md new file mode 100644 index 000000000..2289412bc --- /dev/null +++ b/docs/Public/Software/Computer Architecture/SR latch.md @@ -0,0 +1,3 @@ +A *SR latch* is a type of [[latch]] which has two inputs: set ($S$) and reset ($R$). The $S$ input sets the output to $1$, while the $R$ input sets the output to $0$. [^1] + +[^1]: https://www.geeksforgeeks.org/latches-in-digital-logic/# \ No newline at end of file diff --git a/docs/Public/Software/Computer Architecture/Untitled.md b/docs/Public/Software/Computer Architecture/Untitled.md new file mode 100644 index 000000000..e69de29bb diff --git a/docs/Public/Software/Computer Architecture/cache.md b/docs/Public/Software/Computer Architecture/cache.md new file mode 100644 index 000000000..97fb2a51b --- /dev/null +++ b/docs/Public/Software/Computer Architecture/cache.md @@ -0,0 +1 @@ +A *cache* is a temporary [[data]] store that holds data so future requests for that data can be serve faster. \ No newline at end of file diff --git a/docs/Public/Software/Computer Architecture/clock.md b/docs/Public/Software/Computer Architecture/clock.md new file mode 100644 index 000000000..0ed2c0242 --- /dev/null +++ b/docs/Public/Software/Computer Architecture/clock.md @@ -0,0 +1,3 @@ +The system *clock* is used as an input to the [[sequential circuit]], alternating between $1$ and $0$ at regular intervals (in a *clock* cycle), to control when the state of a circuit changes. [^1] + +[^1]: https://courses.cs.vt.edu/~cs1104/SystemsOrg/COrgn_9.htm#:~:text=All%20the%20circuits%20in%20the,state%20of%20a%20circuit%20changes. \ No newline at end of file diff --git a/docs/Public/Software/Computer Architecture/comparator.md b/docs/Public/Software/Computer Architecture/comparator.md index e69de29bb..143b4e339 100644 --- a/docs/Public/Software/Computer Architecture/comparator.md +++ b/docs/Public/Software/Computer Architecture/comparator.md @@ -0,0 +1 @@ +A *comparator* takes in two binary inputs, and checks to see if the bits of each input are the same value at each position. \ No newline at end of file diff --git a/docs/Public/Software/Computer Architecture/finite state machine.md b/docs/Public/Software/Computer Architecture/finite state machine.md new file mode 100644 index 000000000..2cece79d4 --- /dev/null +++ b/docs/Public/Software/Computer Architecture/finite state machine.md @@ -0,0 +1,7 @@ +A *finite state machine* is a model that describes systems with a finite number of states and transitions to represent their behavior and logic. [^1] + +There are different kinds of *finite state machines*: +- [[Moore state machine]] +- [[Mealy state machine]] + +[^1]: https://www.spiceworks.com/tech/tech-general/articles/what-is-fsm/ \ No newline at end of file diff --git a/docs/Public/Software/Computer Architecture/flip flop.md b/docs/Public/Software/Computer Architecture/flip flop.md new file mode 100644 index 000000000..a0b897747 --- /dev/null +++ b/docs/Public/Software/Computer Architecture/flip flop.md @@ -0,0 +1 @@ +A *flip flop* is a [[latch]] that is controlled by a [[clock]]. \ No newline at end of file diff --git a/docs/Public/Software/Computer Architecture/latch.md b/docs/Public/Software/Computer Architecture/latch.md new file mode 100644 index 000000000..627f0a35a --- /dev/null +++ b/docs/Public/Software/Computer Architecture/latch.md @@ -0,0 +1,8 @@ +A *latch* is a digital circuit that stores a single bit of information and holds its value until it is update by new input signals. [^1] + +There are several types of latches, including: +- [[SR latch]] +- [[D latch]] +- + +[^1]: https://www.geeksforgeeks.org/latches-in-digital-logic/# \ No newline at end of file diff --git a/docs/Public/Software/Theory/dynamic programming.md b/docs/Public/Software/Theory/dynamic programming.md new file mode 100644 index 000000000..ad20bc156 --- /dev/null +++ b/docs/Public/Software/Theory/dynamic programming.md @@ -0,0 +1,5 @@ +*Dynamic programming* is optimization over [[recursion]]. Whenever we see a recursive solution that has repeated calls for the same inputs, we can optimize it using *dynamic programming*. [^1] + +The idea is to store the results of the sub-problems, so we don't have to recompute them. + +[^1]: https://www.geeksforgeeks.org/dynamic-programming/# \ No newline at end of file diff --git a/docs/Public/Software/Theory/memoization.md b/docs/Public/Software/Theory/memoization.md new file mode 100644 index 000000000..e2cd75d96 --- /dev/null +++ b/docs/Public/Software/Theory/memoization.md @@ -0,0 +1,3 @@ +*Memoization* is an optimization technique that stores computation results in [[cache]], and retrieving that information from the cache the next time it's needed instead of computing it again. [^1] + +[^1]: https://www.freecodecamp.org/news/memoization-in-javascript-and-react/ \ No newline at end of file