From f3b59d77f61189b0a9be1c763b9935946e7acc44 Mon Sep 17 00:00:00 2001 From: Joshua Potter Date: Sun, 14 Apr 2024 11:58:01 -0600 Subject: [PATCH] Ordered/binary trees. --- .../plugins/obsidian-to-anki-plugin/data.json | 47 ++-- notes/_journal/2024-04-13.md | 11 + notes/_journal/{ => 2024-04}/2024-04-03.md | 0 notes/_journal/2024-04/2024-04-04.md | 14 ++ notes/_journal/2024-04/2024-04-05.md | 16 ++ notes/_journal/2024-04/2024-04-06.md | 14 ++ notes/_journal/2024-04/2024-04-07.md | 13 ++ notes/_journal/2024-04/2024-04-08.md | 14 ++ notes/_journal/2024-04/2024-04-09.md | 14 ++ notes/_journal/2024-04/2024-04-10.md | 14 ++ notes/_journal/2024-04/2024-04-11.md | 14 ++ notes/_journal/2024-04/2024-04-12.md | 14 ++ notes/algebra/floor-ceiling.md | 2 +- notes/algorithms/sorting/bubble-sort.md | 6 +- notes/algorithms/sorting/insertion-sort.md | 6 +- notes/c17/strings.md | 18 ++ notes/combinatorics/combinations.md | 2 +- notes/encoding/floating-point.md | 20 +- notes/encoding/integer.md | 4 +- notes/logic/boolean-algebra.md | 6 +- notes/logic/equiv-trans.md | 6 +- notes/set/graphs.md | 4 +- notes/set/images/ordered-binary-tree-cmp.png | Bin 0 -> 25188 bytes notes/set/images/ordered-rooted-tree-cmp.png | Bin 0 -> 39656 bytes notes/set/trees.md | 221 +++++++++++++++++- 25 files changed, 447 insertions(+), 33 deletions(-) create mode 100644 notes/_journal/2024-04-13.md rename notes/_journal/{ => 2024-04}/2024-04-03.md (100%) create mode 100644 notes/_journal/2024-04/2024-04-04.md create mode 100644 notes/_journal/2024-04/2024-04-05.md create mode 100644 notes/_journal/2024-04/2024-04-06.md create mode 100644 notes/_journal/2024-04/2024-04-07.md create mode 100644 notes/_journal/2024-04/2024-04-08.md create mode 100644 notes/_journal/2024-04/2024-04-09.md create mode 100644 notes/_journal/2024-04/2024-04-10.md create mode 100644 notes/_journal/2024-04/2024-04-11.md create mode 100644 notes/_journal/2024-04/2024-04-12.md create mode 100644 notes/set/images/ordered-binary-tree-cmp.png create mode 100644 notes/set/images/ordered-rooted-tree-cmp.png diff --git a/notes/.obsidian/plugins/obsidian-to-anki-plugin/data.json b/notes/.obsidian/plugins/obsidian-to-anki-plugin/data.json index 350e116..0ff7405 100644 --- a/notes/.obsidian/plugins/obsidian-to-anki-plugin/data.json +++ b/notes/.obsidian/plugins/obsidian-to-anki-plugin/data.json @@ -106,12 +106,15 @@ "free-tree.png", "forest.png", "cyclic-undirected.png", - "rooted-tree.png" + "rooted-tree.png", + "ordered-rooted-tree.png", + "ordered-rooted-tree-cmp.png", + "ordered-binary-tree-cmp.png" ], "File Hashes": { "algorithms/index.md": "3ac071354e55242919cc574eb43de6f8", "algorithms/sorting/index.md": "4a66e28bce754de5df31ec2f4aed7e93", - "algorithms/sorting/insertion-sort.md": "b352f91800ab87e60c58dbfaf3ae959e", + "algorithms/sorting/insertion-sort.md": "656c9f13dadb8dd663701ff673dd0ee1", "bash/index.md": "22083ea1ee9505cc96b02f82f63ba2c9", "bash/prompts.md": "cc51c210fa819338d4e95658955173df", "bash/quoting.md": "b1d8869a91001f8b22f0cdc54d806f61", @@ -145,7 +148,7 @@ "_journal/2024-02-02.md": "a3b222daee8a50bce4cbac699efc7180", "_journal/2024-02-01.md": "3aa232387d2dc662384976fd116888eb", "_journal/2024-01-31.md": "7c7fbfccabc316f9e676826bf8dfe970", - "logic/equiv-trans.md": "00c899a0a6a868a580a19cb11c416997", + "logic/equiv-trans.md": "1198fbea260527e7dfd17b72955f5bee", "_journal/2024-02-07.md": "8d81cd56a3b33883a7706d32e77b5889", "algorithms/loop-invariants.md": "cbefc346842c21a6cce5c5edce451eb2", "algorithms/loop-invariant.md": "3b390e720f3b2a98e611b49a0bb1f5a9", @@ -160,7 +163,7 @@ "c/types.md": "cf3e66e5aee58a94db3fdf0783908555", "logic/quantification.md": "df25c9b73548438f010f450e3755d030", "c/declarations.md": "2de27f565d1020819008ae80593af435", - "algorithms/sorting/bubble-sort.md": "0762175a4ba183fc7ed5b47758614197", + "algorithms/sorting/bubble-sort.md": "ed480530146aabe122f4dbf00cdacb09", "_journal/2024-02-10.md": "562b01f60ea36a3c78181e39b1c02b9f", "_journal/2024-01/2024-01-31.md": "7c7fbfccabc316f9e676826bf8dfe970", "_journal/2024-02/2024-02-09.md": "a798d35f0b2bd1da130f7ac766166109", @@ -183,7 +186,7 @@ "c/strings.md": "aba6e449906d05aee98e3e536eb43742", "logic/truth-tables.md": "3587646293a1f6646ed65541bc0a26f4", "logic/short-circuit.md": "a3fb33603a38a6d3b268556dcbdfa797", - "logic/boolean-algebra.md": "e27c23ed7e924ef574e3be889809fa97", + "logic/boolean-algebra.md": "56d2e0be2853d49b5dface7fa2d785a9", "_journal/2024-02-13.md": "6242ed4fecabf95df6b45d892fee8eb0", "_journal/2024-02/2024-02-12.md": "618c0035a69b48227119379236a02f44", "binary/shifts.md": "9bbeef29e98c3ab521f44b87528cf5c2", @@ -193,7 +196,7 @@ "_journal/2024-02/2024-02-14.md": "aa009f9569e175a8104b0537ebcc5520", "_journal/2024-02-16.md": "5cc129254afd553829be3364facd23db", "_journal/2024-02/2024-02-15.md": "16cb7563d404cb543719b7bb5037aeed", - "algebra/floor-ceiling.md": "9e088326fa53684c75fae45e09b0d251", + "algebra/floor-ceiling.md": "ffffdd893398da842be2e4337c16bbf7", "algebra/index.md": "90b842eb694938d87c7c68779a5cacd1", "algorithms/binary-search.md": "8533a05ea372e007ab4e8a36fd2772a9", "_journal/2024-02-17.md": "7c37cb10515ed3d2f5388eaf02a67048", @@ -207,7 +210,7 @@ "_journal/2024-02-19.md": "30d16c5373deb9cb128d2e7934ae256a", "_journal/2024-02/2024-02-18.md": "67e36dbbb2cac699d4533b5a2eaeb629", "combinatorics/permutations.md": "1b994b48798699655ee64df29c640251", - "combinatorics/combinations.md": "8185794feca605d43d6fbf5c929a835e", + "combinatorics/combinations.md": "b83f325caa1a7a97a3873016d6ccefcc", "_journal/2024-02-20.md": "b85ba0eeeb16e30a602ccefabcc9763e", "_journal/2024-02/2024-02-19.md": "df1a9ab7ab89244021b3003c84640c78", "combinatorics/inclusion-exclusion.md": "c27b49ee03cc5ee854d0e8bd12a1d505", @@ -218,7 +221,7 @@ "_journal/2024-02/2024-02-21.md": "f423137ae550eb958378750d1f5e98c7", "_journal/2024-02-23.md": "219ce9ad15a8733edd476c97628b71fd", "_journal/2024-02/2024-02-22.md": "312e55d57868026f6e80f7989a889c2b", - "c17/strings.md": "c0893d2eb34f43484af81b3c3d3835ed", + "c17/strings.md": "e4012ee9a18ad44370490e375ae57f09", "c17/index.md": "78576ee41d0185df82c59999142f4edb", "c17/escape-sequences.md": "a8b99070336878b4e8c11e9e4525a500", "c17/declarations.md": "f55d31e93e67f03577300d9e92129e82", @@ -237,7 +240,7 @@ "filesystems/cas.md": "d41c0d2e943adecbadd10a03fd1e4274", "git/objects.md": "c6b7e6a26666386790d25d4ece38175d", "git/index.md": "83d2d95fc549d9e8436946c7bd058d15", - "encoding/integer.md": "8b7927d66439d2bdc4a9e50d6e43d9c7", + "encoding/integer.md": "13f5cb33721bc0815d95821ef940321b", "_journal/2024-02-29.md": "f610f3caed659c1de3eed5f226cab508", "_journal/2024-02/2024-02-28.md": "7489377c014a2ff3c535d581961b5b82", "_journal/2024-03-01.md": "a532486279190b0c12954966cbf8c3fe", @@ -282,12 +285,12 @@ "_journal/2024-03/2024-03-15.md": "e54b2513beac5f46313b4c37622adf39", "_journal/2024-03-17.md": "72e99c7630085aee2c7f340a06b5ada7", "_journal/2024-03/2024-03-16.md": "ab7629c24ebe70838072cf6acec47cb0", - "encoding/floating-point.md": "812c4da23a30b9c2a4a38bc5c7d40185", + "encoding/floating-point.md": "bcb08f08d4ab63cd651b785b343a4b58", "_journal/2024-03-18.md": "8479f07f63136a4e16c9cd07dbf2f27f", "_journal/2024-03/2024-03-17.md": "23f9672f5c93a6de52099b1b86834e8b", "set/directed-graph.md": "b4b8ad1be634a0a808af125fe8577a53", "set/index.md": "b82a215fbee3c576186fc1af93c82fcb", - "set/graphs.md": "b2651abacb583dc21292da3dbe422179", + "set/graphs.md": "7e03faf8fce1168db7a8fcebb396b47f", "_journal/2024-03-19.md": "a0807691819725bf44c0262405e97cbb", "_journal/2024-03/2024-03-18.md": "63c3c843fc6cfc2cd289ac8b7b108391", "awk/variables.md": "e40a20545358228319f789243d8b9f77", @@ -307,7 +310,7 @@ "x86-64/declarations.md": "75bc7857cf2207a40cd7f0ee056af2f2", "x86-64/instructions.md": "240b4ceddf174f48207ba6bed4d25246", "git/refs.md": "954fc69004aa65b358ec5ce07c1435ce", - "set/trees.md": "d25bd5b839fd961f99c54526a827fa4d", + "set/trees.md": "fd092c77c26d0b99b3131da6dc043edd", "_journal/2024-03-24.md": "1974cdb9fc42c3a8bebb8ac76d4b1fd6", "_journal/2024-03/2024-03-23.md": "ad4e92cc2bf37f174a0758a0753bf69b", "_journal/2024-03/2024-03-22.md": "a509066c9cd2df692549e89f241d7bd9", @@ -319,7 +322,25 @@ "_journal/2024-03/2024-03-27.md": "42cb4031f290972be2a43172e80b280a", "_journal/2024-03/2024-03-26.md": "c21d80f07a8056a5a0a31ade8f2f6f65", "_journal/2024-03-29.md": "714957f5f770ff79ff011b4fa6f44cd6", - "_journal/2024-03/2024-03-28.md": "95f213c78825abf4a2d8c75dce59688e" + "_journal/2024-03/2024-03-28.md": "95f213c78825abf4a2d8c75dce59688e", + "_journal/2024-04-05.md": "e8cc9071509acf5a84b2c08ebe8c4249", + "_journal/2024-04/2024-04-04.md": "f9177edb94c66ac09675bd755f041ec5", + "_journal/2024-04/2024-04-03.md": "f1057f16e0e36d47032a81222044f166", + "_journal/2024-04/2024-04-02.md": "53bc3a2bc827a77f94edd2b0ac66b525", + "_journal/2024-04/2024-04-01.md": "fbbd652bb2e9fa6341be6aefcc633f3e", + "_journal/2024-03/2024-03-31.md": "5f1499a7e08505975760054c13bd5f00", + "_journal/2024-03/2024-03-30.md": "d1011fab509f4b8ad3b1132dc6a311cb", + "_journal/2024-03/2024-03-29.md": "45d60952781bb59e736d8d9125b8d3f8", + "_journal/2024-04-06.md": "1e3e0aa30b92987e6d53d5a366963b95", + "_journal/2024-04/2024-04-05.md": "c829cead37580ed6ece0f98497d71147", + "_journal/2024-04-11.md": "23b873dd315e716ad9ee5f107f9cfefc", + "_journal/2024-04/2024-04-10.md": "8ada51600e1bdafd37a5552ae67281e6", + "_journal/2024-04/2024-04-09.md": "20eeafed43b6bc48786133c3523e1029", + "_journal/2024-04/2024-04-08.md": "764b40fc657740d024b54ddd51ffb153", + "_journal/2024-04/2024-04-07.md": "848b6c8702e799c38e4f5dc506891bf7", + "_journal/2024-04/2024-04-06.md": "14482b513cbe15904f1b8d81b5a143d0", + "_journal/2024-04-12.md": "18955288bcdacf24c3d9d4b2a5b2e6d7", + "_journal/2024-04/2024-04-11.md": "9c248442a03080cf2942436a617edfef" }, "fields_dict": { "Basic": [ diff --git a/notes/_journal/2024-04-13.md b/notes/_journal/2024-04-13.md new file mode 100644 index 0000000..6b54687 --- /dev/null +++ b/notes/_journal/2024-04-13.md @@ -0,0 +1,11 @@ +--- +title: "2024-04-13" +--- + +- [x] Anki Flashcards +- [x] KoL +- [ ] Sheet Music (10 min.) +- [ ] Go (1 Life & Death Problem) +- [ ] Korean (Read 1 Story) +- [ ] Interview Prep (1 Practice Problem) +- [x] Log Work Hours (Max 3 hours) \ No newline at end of file diff --git a/notes/_journal/2024-04-03.md b/notes/_journal/2024-04/2024-04-03.md similarity index 100% rename from notes/_journal/2024-04-03.md rename to notes/_journal/2024-04/2024-04-03.md diff --git a/notes/_journal/2024-04/2024-04-04.md b/notes/_journal/2024-04/2024-04-04.md new file mode 100644 index 0000000..bf4937c --- /dev/null +++ b/notes/_journal/2024-04/2024-04-04.md @@ -0,0 +1,14 @@ +--- +title: "2024-04-04" +--- + +- [x] Anki Flashcards +- [x] KoL +- [ ] Sheet Music (10 min.) +- [ ] Go (1 Life & Death Problem) +- [ ] Korean (Read 1 Story) +- [ ] Interview Prep (1 Practice Problem) +- [x] Log Work Hours (Max 3 hours) + +* Back home from Pranav's. +* Refined the hide and seek application further. Instead of relying on Presence as much as I have, just keep player state directly on the GenServer I already have running. This has simplified the logic significantly. \ No newline at end of file diff --git a/notes/_journal/2024-04/2024-04-05.md b/notes/_journal/2024-04/2024-04-05.md new file mode 100644 index 0000000..d4de8fb --- /dev/null +++ b/notes/_journal/2024-04/2024-04-05.md @@ -0,0 +1,16 @@ +--- +title: "2024-04-05" +--- + +- [x] Anki Flashcards +- [x] KoL +- [ ] Sheet Music (10 min.) +- [ ] Go (1 Life & Death Problem) +- [ ] Korean (Read 1 Story) +- [ ] Interview Prep (1 Practice Problem) +- [ ] Log Work Hours (Max 3 hours) + +* More hide and seek work: + * Bootstrap room servers on application start and restart on failure. + * Keep room on disk in sync with room in memory. + * Get phase timers implemented. \ No newline at end of file diff --git a/notes/_journal/2024-04/2024-04-06.md b/notes/_journal/2024-04/2024-04-06.md new file mode 100644 index 0000000..f054478 --- /dev/null +++ b/notes/_journal/2024-04/2024-04-06.md @@ -0,0 +1,14 @@ +--- +title: "2024-04-06" +--- + +- [x] Anki Flashcards +- [x] KoL +- [ ] Sheet Music (10 min.) +- [ ] Go (1 Life & Death Problem) +- [ ] Korean (Read 1 Story) +- [ ] Interview Prep (1 Practice Problem) +- [ ] Log Work Hours (Max 3 hours) + +* Continue adding more flashcards around trees (ordered and binary). +* Refactor the hide and seek application into a more functional/pipeline style. \ No newline at end of file diff --git a/notes/_journal/2024-04/2024-04-07.md b/notes/_journal/2024-04/2024-04-07.md new file mode 100644 index 0000000..8d32345 --- /dev/null +++ b/notes/_journal/2024-04/2024-04-07.md @@ -0,0 +1,13 @@ +--- +title: "2024-04-07" +--- + +- [x] Anki Flashcards +- [x] KoL +- [ ] Sheet Music (10 min.) +- [ ] Go (1 Life & Death Problem) +- [ ] Korean (Read 1 Story) +- [ ] Interview Prep (1 Practice Problem) +- [ ] Log Work Hours (Max 3 hours) + +* Met with Gus and Addie on feedback for hide-and-seek project. \ No newline at end of file diff --git a/notes/_journal/2024-04/2024-04-08.md b/notes/_journal/2024-04/2024-04-08.md new file mode 100644 index 0000000..c70ee33 --- /dev/null +++ b/notes/_journal/2024-04/2024-04-08.md @@ -0,0 +1,14 @@ +--- +title: "2024-04-08" +--- + +- [x] Anki Flashcards +- [x] KoL +- [ ] Sheet Music (10 min.) +- [ ] Go (1 Life & Death Problem) +- [ ] Korean (Read 1 Story) +- [ ] Interview Prep (1 Practice Problem) +- [x] Log Work Hours (Max 3 hours) + +* Continued working on hide-and-seek application. + * Mostly mapbox-related functionality. \ No newline at end of file diff --git a/notes/_journal/2024-04/2024-04-09.md b/notes/_journal/2024-04/2024-04-09.md new file mode 100644 index 0000000..2bc3697 --- /dev/null +++ b/notes/_journal/2024-04/2024-04-09.md @@ -0,0 +1,14 @@ +--- +title: "2024-04-09" +--- + +- [x] Anki Flashcards +- [x] KoL +- [ ] Sheet Music (10 min.) +- [ ] Go (1 Life & Death Problem) +- [ ] Korean (Read 1 Story) +- [ ] Interview Prep (1 Practice Problem) +- [ ] Log Work Hours (Max 3 hours) + +* Continued working on hide-and-seek application. + * Decided at this point we should switch off of live views. Considering we want to eventually add mobile support, live views aren't compatible. We might as well have the web application work similarly. It will be a fairly large refactor, but I'd like to get it done before this weekend's playtest. \ No newline at end of file diff --git a/notes/_journal/2024-04/2024-04-10.md b/notes/_journal/2024-04/2024-04-10.md new file mode 100644 index 0000000..99d8db6 --- /dev/null +++ b/notes/_journal/2024-04/2024-04-10.md @@ -0,0 +1,14 @@ +--- +title: "2024-04-10" +--- + +- [x] Anki Flashcards +- [x] KoL +- [ ] Sheet Music (10 min.) +- [ ] Go (1 Life & Death Problem) +- [ ] Korean (Read 1 Story) +- [ ] Interview Prep (1 Practice Problem) +- [x] Log Work Hours (Max 3 hours) + +* Hide & Seek + * Begun the refactoring away from Phoenix LiveViews to React. \ No newline at end of file diff --git a/notes/_journal/2024-04/2024-04-11.md b/notes/_journal/2024-04/2024-04-11.md new file mode 100644 index 0000000..c097355 --- /dev/null +++ b/notes/_journal/2024-04/2024-04-11.md @@ -0,0 +1,14 @@ +--- +title: "2024-04-11" +--- + +- [x] Anki Flashcards +- [x] KoL +- [ ] Sheet Music (10 min.) +- [ ] Go (1 Life & Death Problem) +- [ ] Korean (Read 1 Story) +- [ ] Interview Prep (1 Practice Problem) +- [x] Log Work Hours (Max 3 hours) + +* Hide-and-seek application + * Mad dash to get something more or less functional for Saturday's playtest. Definitely not solid code but something I can begin cleaning up properly after, once we are satisfied with the flow of the game state machine. \ No newline at end of file diff --git a/notes/_journal/2024-04/2024-04-12.md b/notes/_journal/2024-04/2024-04-12.md new file mode 100644 index 0000000..d3c380f --- /dev/null +++ b/notes/_journal/2024-04/2024-04-12.md @@ -0,0 +1,14 @@ +--- +title: "2024-04-12" +--- + +- [x] Anki Flashcards +- [x] KoL +- [ ] Sheet Music (10 min.) +- [ ] Go (1 Life & Death Problem) +- [ ] Korean (Read 1 Story) +- [ ] Interview Prep (1 Practice Problem) +- [x] Log Work Hours (Max 3 hours) + +* Hide and Seek + * Finished getting a basic prototype up and running. Hosted on https://hideandseek.live. \ No newline at end of file diff --git a/notes/algebra/floor-ceiling.md b/notes/algebra/floor-ceiling.md index 91d6061..8bfdfe5 100644 --- a/notes/algebra/floor-ceiling.md +++ b/notes/algebra/floor-ceiling.md @@ -125,7 +125,7 @@ END%% %%ANKI Basic What C operator corresponds to floor division? -Back: None. +Back: N/A. Reference: Ronald L. Graham, Donald Ervin Knuth, and Oren Patashnik, *Concrete Mathematics: A Foundation for Computer Science*, 2nd ed (Reading, Mass: Addison-Wesley, 1994). END%% diff --git a/notes/algorithms/sorting/bubble-sort.md b/notes/algorithms/sorting/bubble-sort.md index 3447f50..4e91301 100644 --- a/notes/algorithms/sorting/bubble-sort.md +++ b/notes/algorithms/sorting/bubble-sort.md @@ -79,7 +79,7 @@ END%% %%ANKI Basic Is `BUBBLE_SORT` in place? -Back: Yes +Back: Yes. Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). END%% @@ -87,7 +87,7 @@ END%% %%ANKI Basic Is `BUBBLE_SORT` stable? -Back: Yes +Back: Yes. Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). END%% @@ -95,7 +95,7 @@ END%% %%ANKI Basic Is `BUBBLE_SORT` adaptive? -Back: Yes +Back: Yes. Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). END%% diff --git a/notes/algorithms/sorting/insertion-sort.md b/notes/algorithms/sorting/insertion-sort.md index 78f6308..0b75c6e 100644 --- a/notes/algorithms/sorting/insertion-sort.md +++ b/notes/algorithms/sorting/insertion-sort.md @@ -71,7 +71,7 @@ END%% %%ANKI Basic Is `INSERTION_SORT` in place? -Back: Yes +Back: Yes. Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). END%% @@ -79,7 +79,7 @@ END%% %%ANKI Basic Is `INSERTION_SORT` stable? -Back: Yes +Back: Yes. Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). END%% @@ -87,7 +87,7 @@ END%% %%ANKI Basic Is `INSERTION_SORT` adaptive? -Back: Yes +Back: Yes. Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). END%% diff --git a/notes/c17/strings.md b/notes/c17/strings.md index 92409be..4c946b7 100644 --- a/notes/c17/strings.md +++ b/notes/c17/strings.md @@ -782,6 +782,24 @@ Tags: printf END%% +%%ANKI +Basic +What is the output of `printf("%.1f", 2.0)`? +Back: `2.0` +Reference: “Printf,” in *Wikipedia*, January 18, 2024, [https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962](https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962). +Tags: printf + +END%% + +%%ANKI +Basic +Assuming fixed-point notation, what is the output of `printf("%.1g", 2.0)`? +Back: `2` +Reference: “Printf,” in *Wikipedia*, January 18, 2024, [https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962](https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962). +Tags: printf + +END%% + %%ANKI Basic Assuming fixed-point notation, what is the output of `printf("%g", 3.14)`? diff --git a/notes/combinatorics/combinations.md b/notes/combinatorics/combinations.md index 28078dc..9e5e4bc 100644 --- a/notes/combinatorics/combinations.md +++ b/notes/combinatorics/combinations.md @@ -111,7 +111,7 @@ END%% %%ANKI Basic -What combinatorial concept explains the number of subsets of a finite set? +What combinatorial concept explains the number of subsets of a finite set of a given size? Back: Combinations. Reference: Oscar Levin, *Discrete Mathematics: An Open Introduction*, 3rd ed., n.d., [https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf](https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf). diff --git a/notes/encoding/floating-point.md b/notes/encoding/floating-point.md index b1ae589..dc5ea42 100644 --- a/notes/encoding/floating-point.md +++ b/notes/encoding/floating-point.md @@ -362,7 +362,7 @@ END%% %%ANKI Basic What range of values does the significand $M$ take on in IEEE floating-point? -Back: Between $1$ and $2 - \epsilon$ or between $0$ and $1 - \epsilon$. +Back: Between $0$ and $2 - \epsilon$. Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. END%% @@ -503,6 +503,24 @@ Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Program END%% +%%ANKI +Basic +What is the binary representation of a `float`'s bias? +Back: `01111111` +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. +Tags: c17 + +END%% + +%%ANKI +Basic +What is the binary representation of a `double`'s bias? +Back: `01111111111` +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. +Tags: c17 + +END%% + %%ANKI Basic How do you determine the exponent *value* in normalized form? diff --git a/notes/encoding/integer.md b/notes/encoding/integer.md index b766087..ed5729d 100644 --- a/notes/encoding/integer.md +++ b/notes/encoding/integer.md @@ -96,7 +96,7 @@ END%% %%ANKI Basic According to the C standard, Is `unsigned` overflow well-defined? -Back: Yes +Back: Yes. Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. END%% @@ -104,7 +104,7 @@ END%% %%ANKI Basic According to the C standard, Is `signed` overflow well-defined? -Back: No +Back: No. Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. END%% diff --git a/notes/logic/boolean-algebra.md b/notes/logic/boolean-algebra.md index 6369de5..6638b63 100644 --- a/notes/logic/boolean-algebra.md +++ b/notes/logic/boolean-algebra.md @@ -55,7 +55,7 @@ END%% %%ANKI Basic What C logical operator corresponds to $\land$? -Back: There isn't one. +Back: N/A Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981. Tags: c17 @@ -64,7 +64,7 @@ END%% %%ANKI Basic What C logical operator corresponds to $\lor$? -Back: There isn't one. +Back: N/A Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981. Tags: c17 @@ -73,7 +73,7 @@ END%% %%ANKI Basic What C logical operator corresponds to $\Rightarrow$? -Back: There isn't one. +Back: N/A Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981. Tags: c17 diff --git a/notes/logic/equiv-trans.md b/notes/logic/equiv-trans.md index d5d294c..1908576 100644 --- a/notes/logic/equiv-trans.md +++ b/notes/logic/equiv-trans.md @@ -67,7 +67,7 @@ END%% %%ANKI Basic Is $(b \land c)$ well-defined in $\{(b, T), (c, F)\}$? -Back: Yes +Back: Yes. Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981. END%% @@ -75,7 +75,7 @@ END%% %%ANKI Basic Is $(b \lor d)$ well-defined in $\{(b, T), (c, F)\}$? -Back: No +Back: No. Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981. END%% @@ -588,7 +588,7 @@ END%% %%ANKI Basic What identifier is guaranteed to not occur freely in $E_{s(e)}^x$? -Back: $x$. +Back: $x$ Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981. END%% diff --git a/notes/set/graphs.md b/notes/set/graphs.md index 80a15c9..45bb016 100644 --- a/notes/set/graphs.md +++ b/notes/set/graphs.md @@ -709,7 +709,7 @@ END%% %%ANKI Basic -What are the paths of length $1$ from vertex $2$ to vertex $2$? +What are the paths of length $1$ to vertex $2$? ![[directed-graph-example.png]] Back: $\langle 1, 2 \rangle$, $\langle 2, 2 \rangle$ Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). @@ -720,7 +720,7 @@ END%% Basic What are the paths of length $2$ from vertex $2$ to vertex $2$? ![[directed-graph-example.png]] -Back: $\langle 4, 1, 2 \rangle$, $\langle 2, 2, 2 \rangle$ +Back: $\langle 2, 2, 2 \rangle$ Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). END%% diff --git a/notes/set/images/ordered-binary-tree-cmp.png b/notes/set/images/ordered-binary-tree-cmp.png new file mode 100644 index 0000000000000000000000000000000000000000..e587a7e7e0ccb537996a83df9390a4f5d314c107 GIT binary patch literal 25188 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
SG;vfa~3S+-6v5d$F)Nk9y>P3V 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 END%% @@ -596,6 +596,225 @@ Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition END%% +An **ordered tree** is a rooted tree in which the children of each node are ordered. + +%%ANKI +Basic +What is an ordered tree? +Back: A rooted tree in which the children of each node are ordered. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Which of ordered trees or rooted trees is the more general concept? +Back: Rooted trees. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Which of free trees or ordered trees is the more general concept? +Back: Free trees. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Is every rooted tree an ordered tree? +Back: No. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Is every ordered tree a rooted tree? +Back: Yes. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +The following two trees are equivalent when considered as what kind of trees? +![[ordered-rooted-tree-cmp.png]] +Back: Rooted/free trees. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +The following two trees are different when considered as what kind of trees? +![[ordered-rooted-tree-cmp.png]] +Back: Ordered trees. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +A **binary tree** $T$ is a structure defined on a finite set of nodes that either + +* contains no nodes, or +* is composed of three disjoint sets of nodes: a **root** node, a **left subtree**, and a **right subtree**. + +%%ANKI +Basic +What is the base case used in the recursive definition of a binary tree? +Back: The empty set. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What recurrence is used in the recursive definition of a binary tree? +Back: A binary tree is composed of a root node, a left subtree, and a right subtree. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +How should the nil constructor of an inductive binary tree, say `Tree`, be defined? +Back: +```lean +| constructor : Tree α +``` +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). +Tags: lean + +END%% + +%%ANKI +Basic +How should the non-nil constructor of an inductive binary tree, say `Tree`, be defined? +Back: +```lean +| constructor : α → Tree α → Tree α → Tree α +``` +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). +Tags: lean + +END%% + +%%ANKI +Basic +In the following binary tree type, what name is given to the first argument of `node`? +```lean +inductive Tree α where +| nil : Tree α +| node : α → Tree α → Tree α → Tree α +``` +Back: The root node. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). +Tags: lean + +END%% + +%%ANKI +Basic +In the following binary tree type, what name is given to the second argument of `node`? +```lean +inductive Tree α where +| nil : Tree α +| node : α → Tree α → Tree α → Tree α +``` +Back: The left subtree. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). +Tags: lean + +END%% + +%%ANKI +Basic +In the following binary tree type, what name is given to the third argument of `node`? +```lean +inductive Tree α where +| nil : Tree α +| node : α → Tree α → Tree α → Tree α +``` +Back: The right subtree. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). +Tags: lean + +END%% + +%%ANKI +Basic +Given the following binary tree implementation, how do you construct an empty tree? +```lean +inductive Tree α where +| nil : Tree α +| node : α → Tree α → Tree α → Tree α +``` +Back: `nil` +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). +Tags: lean + +END%% + +%%ANKI +Basic +Given the following binary tree implementation, how do you construct a tree with root `a`, left child `b`, and right child `c`? +```lean +inductive Tree α where +| nil : Tree α +| node : α → Tree α → Tree α → Tree α +``` +Back: `node 'a' (node 'b' nil nil) (node 'c' nil nil)` +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). +Tags: lean + +END%% + +%%ANKI +Basic +Why isn't a binary tree considered an ordered tree? +Back: A left child is distinct from a right child, even if the child is the same in both cases. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Considered as rooted trees, are the following trees the same? +![[ordered-binary-tree-cmp.png]] +Back: Yes. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Considered as ordered trees, are the following trees the same? +![[ordered-binary-tree-cmp.png]] +Back: Yes. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Considered as binary trees, are the following trees the same? +![[ordered-binary-tree-cmp.png]] +Back: No. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Why are these two binary trees not the same? +![[ordered-binary-tree-cmp.png]] +Back: `5` is a left child in the first tree but a right child in the second. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + ## Bibliography * Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). \ No newline at end of file