计算导论与C语言基础

原课程链接:计算导论与C语言基础 Turing machine The ranking is in descending order of price and working speed Register: carries operation data and results, as fast as a CPU Cache: data buffer Memory: the part that cannot be placed in the CPU External memory (hard disk, USB flash drive) C. Bohm & G. Jacopini, “Flow Diagrams, Turing Machines and Languages ​​with Only Two Formations Rules”, Communications of ACM, vol9(5) May 1966, pp 366-371. Everything in the world is complicated, and there are only three kinds of logic expressed in programs: ...

2023-12-13 · 2 分钟 · Atom.X

公开课《程序设计与算法》

课程笔记 北京大学coursera 程序设计与算法 Specialization 专项课程。 练习题Github 库 作业参考GitHub - chiuchiuuu/programming-and-algorithm 课程名 以文件夹定义 C1, 计算导论与C语言基础 C2, C程序设计进阶 C3, C++程序设计 C4, 算法基础 C5, 数据结构基础 C6, 高级数据结构与算法 C7, 程序开发项目实践 文件名 取名规则:例如 2.3.3.cpp 2.C程序设计进阶 (系列课程的第二课) 3.函数递归(该课第三周) 3.编程题#4:扩号匹配问题(该周第四题) 不能保证全部代码都通过coursera或POJ的评价 Debugging case: % c++ 3.9.1.cpp 3.9.1.cpp:83:9: warning: ‘auto’ type specifier is a C++11 extension [-Wc++11-extensions] for(auto p : v) { ^ 3.9.1.cpp:83:16: warning: range-based for loop is a C++11 extension [-Wc++11-extensions] for(auto p : v) { ^ 2 warnings generated. ...

2023-12-1 · 1 分钟 · Atom.X

用AI辅助修复旧照片

为了修复老照片,哪一款AI模型最强大? Google、Microsoft、OpenAI等各大厂商的AI都是通用的大模型,虽然其本身并没有一个专门用于修复旧照片的功能,但它具备一些能力,可以结合其他工具和技术,来辅助完成修复旧照片的任务。 以Google Gemini 为例 Gemini 可以辅助的部分: 图像描述和分析: Gemini 可以对旧照片进行图像描述,识别照片中的问题,例如: “这张照片拍摄于 1950 年代,图像泛黄,有明显的划痕和污渍,人物面部细节模糊。” “照片曝光过度,细节丢失严重,需要调整对比度和亮度。” “照片背景模糊,主体人物清晰,但边缘有噪点。” 这些描述可以帮助你更好地了解照片的问题,并制定修复策略。 文本提示生成: Gemini 可以根据照片的描述,生成更有效的文本提示词,用于图像修复工具(如 Stable Diffusion、Midjourney 等)。 例如: 照片描述: “一张黑白旧照片,人物面部模糊,有轻微划痕。” Gemini 生成提示词: “修复黑白照片,清晰人脸,去除轻微划痕,增强细节,高分辨率。” 更好的提示词可以提高图像修复工具的修复质量。 Stability.ai Github repo: Stability.ai 信息检索: Gemini 可以用来搜索和学习图像修复相关的技术和教程,例如: 搜索 “使用 Photoshop 修复旧照片教程” 搜索 “AI 图像修复工具测评” 搜索 “老照片修复算法” 创意灵感: Gemini 可以提供一些修复的创意灵感,例如: 如果照片缺失部分,Gemini 可以根据照片内容提供可能的场景补充建议。 如果照片颜色褪色,Gemini 可以提供颜色还原的参考方案。 需要配合使用的工具和技术: 图像处理软件 (Photoshop, GIMP): 手动修复照片的工具,可以进行色彩校正、修复划痕、去除污渍等。 AI 图像修复工具 (GFPGAN, Real-ESRGAN, Remini): 利用人工智能技术自动修复照片,可以增强图像分辨率、锐化边缘、还原人脸细节等。 图像增强算法: 例如双三次插值、 Lanczos 插值等,可以提升图像分辨率。 颜色还原技术: 例如使用参考图像或自动色彩校正算法,还原照片的色彩。 总结: Gemini 并非一个“开箱即用”的老照片修复工具,但它可以作为你的助手,帮助你更好地分析照片、生成有效的提示词、学习修复技术、并提供创意灵感。 通过将 Gemini 与其他图像处理工具和技术结合使用,你可以更有效地修复旧照片,恢复它们昔日的风采。 ...

2023-2-25 · 1 分钟 · Atom.X

配置 gcloud 环境变量

本文件描述了几种配置python程序所需gcloud 环境变量的方法。 方案 2:在 Shell 启动文件中配置(推荐用于本地开发) 这种方法可以持久地为你的用户设置环境变量。每次打开新的终端时,这些变量都会被设置。 添加 export 命令: 在文件末尾,通常在其他 export 命令之后,添加你的环境变量配置: Bash (.bashrc 或 .bash_profile): export GOOGLE_CLOUD_PROJECT="your-project-id" export GOOGLE_CLOUD_REGION="your-region" # 例如:europe-west3 export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/credentials.json" 编辑文件后,重新启动终端或使用 source 命令使更改生效: source ~/.bashrc # 或 .bash_profile 或 .zshrc 若项目运行于python .venv虚拟环境中,没有全局配置gcloud环境变量的需求,那么配置在虚拟环境中,通常在 venv/bin/activate。 请编辑激活activate脚本,增加以上bash中相同的export脚本。 方案 3:使用 gcloud 的 application-default 登录(便于使用默认的 gcloud 配置) 如果你已经使用 gcloud auth application-default login 配置了 gcloud ,其中包含你的项目和凭据,则你的脚本可以自动获取这些凭据。这很方便,尤其当你已经大量使用 gcloud CLI 时,因为它避免了显式设置环境变量。 然而,它不如方案 2 明确,并且需要确保你的默认项目设置正确。 gcloud config set project your-project-id gcloud auth application-default login 然后,在你的 Python 代码中,使用 google.auth.default() 获取凭据: ...

2023-2-16 · 1 分钟 · Atom.X

学习数学和编程的充分理由

因为个体的力量是有限的,大规模的群体协作,可以将文明和智慧推到更高水平,这些协作包括人和人、人和动物、人和机器等,以及所有这些主体(人、机器、动物、植物、微生物)之间的各种排列组合的协作关系。协作需要沟通的语言,即使动物之间也有沟通方式。 以下几种语言值得学习: 英语:为了向目前的20-21世纪地球上最繁盛和文明的人类族群学习,将英文作为日常交流和协作的主要自然语言; 编程:为了和大规模的机器集群,以及少数高智商人类的精准协作; 数学:数学是机器语言和其他科学技术的基础; 人类自然语言- 模糊和欺诈 人类之间的自然语言有太多种类,千差万别,所谓“百里不同音”,相距不过50公里的地方,人类的语言就发生变异了,可能语音、语法、语义、表达方式都产生某种程度的偏差,自然语言是天生的,为什么会这样?只有上帝能解释。 然而,在同一个社会组织里,例如公司内部,即使处于同一种自然语言和文化背景下,人类之间的沟通依然不可避免很多的弊病,导致不能相互理解,更不能良好协作,更何况和另外一个世界和国家的人沟通协作呢? 常见的问题包括: A. 在有意或无意的情况下,相互之间误解、词不达意、虚假信息等; B. 在有意(恶意)的情况下,沟通的对方有系列复杂的情绪,极其多变、混乱的思维表达、欺诈、作弊撒谎等,则情况将更为糟糕。 很明显人类自然语言,首先要解决表达精准的问题,可确保: A. 在正常(有意或无意)情况下,可正常沟通和协作。 B. 在不可避免的(恶意)情况下,尽可能最快地识别对方的欺诈意图和行为,及时止损; 专业人士用人类自然语言能更精准沟通,例如律师、会计师,其他受过高等教育的专业人士大多也能做到。律师属于社科专业,其他大多都属于理科工程专业。 但是我们见过太多受过高等教育的(文化艺术)社科专业人士,一样谈话没有理智,逻辑思维颠倒,可能是我所处的相对落后的社会背景所致。 不同族群的文明程度有差异,目前英语作为母语的国家最强大,占据全球top20榜首,这不包括英联邦的非洲和拉美等海外殖民地。 既然和人类沟通协作不可避免,那就尽量选择最强大和文明的族群的语言 – 英语,作为首选的人类自然语言。 机器语言- 足够精确 相较于人类自然语言,机器语言是更精准的,如果我们遵守操作守则,按照机器的语言指令规范做,那么机器就能良好运转,与人类很高效率地良好协作,否则,给机器模糊的指令(语言),轻则不能正常开机工作,重则机毁人亡。 人类无论怎么多变,机器始终严格遵守其固有的语言规则。 以钟表和蒸汽机为代表的机器开启了工业时代史无前例的巨大生产力,所有这一切的科学技术发展到今天的极致代表是计算机。 计算机的工作语言称为程序,这是我们要和计算机良好沟通协作的基础,然后计算机之间组成庞大的云计算集群cloud computing,,几乎每台其他类(非计算机)的机器上都已经可以嵌入(微型)计算单元,因此产生万物联网IoT,人类和机器之间的大规模协作达到更高的水平,并产生智能机器和机器之间的沟通协作,这个时代的世界万物产生了极速的变化。 而一切机器语言的集大成者在计算机语言 - 程序,这是我们要学编程的原因。 数学语言- 机器语言基础和宇宙规律 包括法律、哲学、音乐等文学艺术类的科目,其背后的基础也都有数学和逻辑,而计算机编程语言则更是需要数学基础。 数学符号、公式、定理、方程、函数等等,是贯通古今的语言符号,高度国际化,我们常见的有:阿拉伯数字、罗马、希腊和拉丁字符等等。 数学 = 博学 使用数学符号沟通,是一切理工和科学技术类专业的基础语言,数学家相比较程序员更全球化。 程序语言有多少种?上百种,太多了。 而数学符号相比较程序语言少很多,更精简。 所以,这是我们要学好数学的充分理由。 其他物种语言 - 基本属于神棍江湖 这包括动物、植物、或其他灵异物种的语言,按照科学可反复实证的要求,一些有限的论文显示了在其他物种语言方面的极其有限的进展,所以这个领域对于人类目前依然属于较大的空白。 倒是在民间有大量的人宣称已经掌握了与天地万物沟通的语言,常见的是农民、宗教(邪教)人士、中医、掌握巫术、与灵异沟通的非常人,按照现代科学教育的标准看,这类群体大多都是文盲,不在此讨论范围。 涉及宗教等敏感话题,当然听听最主流各大宗教的意见,毕竟宗教与科教结合在一起,可信度要更高一些,按照大学课程标准传授知识,不知道是否有“与鬼神沟通”的技能培训? 所以对于其他物种语言的探索,目前属于神棍江湖,暂时不在我们的考虑范围。

2023-1-23 · 1 分钟 · Atom.X