{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# a bonary tree" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#***********************************************************************\n", "#** a bo-binary tree *\n", "#** for and inspired by Wang Xiaobo (1952-1997), writer and programmer.*\n", "#** \"我也自做了词组功能,是棵B树,我觉得自写的软件自用,感觉是最好的。\" *\n", "#** \"I created a word feature with a binary tree strucutre, *\n", "#** and I feel best about using a program you created yourself.\" *\n", "#** read more in archival documentation(Chinese): *\n", "#** https://blog.csdn.net/weixin_33697898/article/details/93356187 *\n", "#** *\n", "#***********************************************************************" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 思维的乐趣 \n", "### on discourse \n", "### quotes from 《我的精神家园》\n", "谈到思想的乐趣,我就想到我父亲的遭遇。我父亲是一位哲学教授,在五六十年代从事思维史的研究。在老年时,他告诉我自己一生的学术经历,就如一部恐怖电影。每当他企图立论时,总要在大一统的思想体系里找到自己的位置,就如一只老母鸡要在一个大搬家的宅院里找地方孵蛋一样。结果他虽然热爱科学而且很努力,在一生中却没有得到思维的乐趣,之收获了无数的恐慌。他一生的探索,只剩下了一些断壁残垣,收到一本名为《逻辑探索》的书里,在他身后出版。\n", "\n", "我在沉默中过了很多年:插队、当工人、当大学生,后来又在大学里任过教。当教师的人保持沉默似不可能,但我教的是技术性的课程,在讲台上只讲技术性的话,下了课我就走人。找我看,不管干什么都可以保持沉默。当然,我还有一个终身爱好,就是写小说。但是写好了不拿去发表,同样也保持了沉默。至于沉默的理由,很是简单。那就是信不过话语圈。从我短短的人生经历看,它是一座声名狼藉的疯人院。当时我怀疑的不是说过亩产三十万斤粮、炸过精神原子弹的那个话语圈,而是一切话语圈子。\n", "\n", "还有一些人,因为种种原因,对于话语的世界有某种厌恶之情。我属于这最后一种。作为最后一种人,也有义务谈自己的所见所闻。\n", "\n", "王小波(1997).《我的精神家园》.北京:文化艺术出版社.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#Create a proof of concept dictionary tree that looks for hong(3) fu(2)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from anytree import Node, RenderTree\n", "h = Node(\"h\")\n", "o = Node(\"o\", parent=h)\n", "n = Node(\"n\", parent=o)\n", "g = Node(\"g\", parent=n)\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Node('/h')\n", "Node('/h/o/n/g')\n", "h\n", "└── o\n", " └── n\n", " └── g\n" ] } ], "source": [ "#print node\n", "print(h)\n", "print(g)\n", "\n", "#print tree\n", "for pre, fill, node in RenderTree(h):\n", "\tprint(\"%s%s\" %(pre,node.name))" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "f\n", "└── u\n" ] } ], "source": [ "f = Node(\"f\")\n", "u = Node(\"u\", parent = f)\n", "for pre, fill, node in RenderTree(f):\n", "\tprint(\"%s%s\" %(pre,node.name))\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "y\n", "└── e\n" ] } ], "source": [ "y = Node(\"y\")\n", "e = Node(\"e\", parent = y)\n", "for pre, fill, node in RenderTree(y):\n", "\tprint(\"%s%s\" %(pre,node.name))" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "b\n", "└── e\n", " └── n\n" ] } ], "source": [ "b = Node(\"b\")\n", "e = Node(\"e\", parent = b)\n", "n = Node(\"n\", parent = e)\n", "for pre, fill, node in RenderTree(b):\n", "\tprint(\"%s%s\" %(pre,node.name))" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "def printTree(root):\n", " for pre, fill, node in RenderTree(root):\n", " print(\"%s%s\" %(pre,node.name))" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "h\n", "└── o\n", " └── n\n", " └── g\n", "红\n", "\n", "f\n", "└── u\n", "拂\n", "\n", "y\n", "└── e\n", "夜\n", "\n", "b\n", "└── e\n", " └── n\n", "奔\n", "\n" ] } ], "source": [ "tree_list = [h,f,y,b]\n", "红拂夜奔 = [\"红\",\"拂\",\"夜\",\"奔\"]\n", "counter = 0\n", "for tree in tree_list:\n", " printTree(tree)\n", " print(红拂夜奔[counter])\n", " counter = counter + 1\n", " print()" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# an alphabet binary search tree\n", "import string\n", "alphabet_s = string.ascii_lowercase\n", "alphabet_l = list(alphabet_s)\n", "#print(alphabet_l)\n", "# add nodes manually, starting from m " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import IPython.display \n", "Video('vid/wang_interview.mp4')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# transcription of wang's interview in Chinese\n", "# autotranslate that into English for non-Chinese readers" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "数据结构是思维的形状的一种表现方式\n", "the structure of data may be one representation of the form of thought " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wang Xiaobo (1952-1997), writer and programmer.
\n", "\"我也自做了词组功能,是棵B树,我觉得自写的软件自用,感觉是最好的。\"
\n", "\"I created a word feature with a binary tree strucutre, and I feel best about using a program you created yourself.\"\n", "read more in archival documentation(Chinese):
\n", "https://blog.csdn.net/weixin_33697898/article/details/93356187" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.4" } }, "nbformat": 4, "nbformat_minor": 4 }