C程序设计进阶

原课程链接:C程序设计进阶 const vs. static const 限制指针实参的功能 指针常量: 不能修改指针所指向的地址。在定义时必须立即初始化。 示例: char* const ptr = &some_char; // ptr 是一个指向 char 的常量指针 *ptr = 'a'; // 合法,修改了 ptr 所指向的 char 的值 ptr = &another_char; // 错误,不能修改 ptr 的值 常量指针: 不能修改指针所指向地址的内容,但可以改变指针所指向的地址。 示例: const char* ptr; // ptr 是一个指向 char 的常量指针 char const* ptr; // 与上一行等效 *ptr = 'a'; // 错误,不能修改 ptr 所指向的 char 的值 ptr = &another_char; // 合法,可以改变 ptr 的值 static 在函数内部或类中声明的静态变量,其生命周期跨越整个程序执行过程(在循环中多次执行,每次循环的初始值继承了上一次循环的值),且只初始化一次。 string literal #include <iostream> using namespace std; int main() { // input arguments int k=0, m=0, n=0; cin>>k; cin>>m>>" ">>n; // wrong expression. } cin operator automatically skips any whitespace, including spaces and newlines. it’s illegal to use “ ” with cin, because it is string literal, cin could not hold string. ...

2023-12-14 · 6 分钟 · Atom.X

计算导论与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