CPP-L2备课记录

GPT Image 2不是产品,是多模态图文协同新范式 多模态大模型正推动图文生成从‘单图绘制’迈向‘连续思考’——其核心在于视觉与语言token的联合建模与同步生成,而非单纯提升分辨率或画质。这一能力依托于GPT-4o、Qwen2-VL、SenseNova U1等原生多模态架构,在逻辑一致性、中文渲染准确率和响应稳定性上形成工程级突破。技术价值体现在降低跨工具协作成本、保障数据主权、支持私有化部署与领域微调;典型场景覆盖教育课件自动生成、品牌VI统一输出、PDF智能摘要、技术文档配图及实时会议纪要可视化。本文聚焦‘本地部署vs在线使用’的实战决策逻辑,尤其针对 阅读详情

Preface

本节将继续讲解上一节CPP-L1课程中,可能给孩子带来困惑的地方,比如:

  1. 操作系统是做什么的?有哪些主要类型的操作系统?这里需要大概普及一下操作系统的作用和Windows/Unix(like)这么两类系统。又由于接下来要讲到变量的作用域和生命周期、库和函数的调用,不得不对操作系统的环境变量知识进行简单的科普,只讲到修改和使用即可;
  2. 变量的作用域和生命周期,内存的申请和释放;
  3. 函数(库)的声明和函数的调用,包括本地函数,系统库,第三方库,声明和使用顺序。函数的调用原理涉及到系统内核的CPU时间片分配、堆栈、程序计数器、进程、线程等复杂知识的内容不好讲,只能简单带过,让孩子们大概知道怎么回事。又由于函数有参数,此处又涉及到形参和实参的问题(值传递和引用传递),此处尚且涉及指针,所以不能不讲,但也只能简化的讲;
  4. 上一节使用的是C语言进行讲解,讲清楚了库,就可以讲解C++了。然后将printf修改为cout,再带孩子实践一下cout和cin,加深一下函数调用的印象。

0. 预备知识-计算机基础

0.1. 小管家:操作系统

0.1.1. 由来

说法一:计算机由控制系统,运算系统,输入系统(Input),输出系统(Output),存储系统五部分组成;

说法二:计算机由控制系统,运算系统,输入输出(IO)系统,存储系统,数据通路(总线)五部分组成;

        再具体一些,就是在物理上,使用不同的材料,实现的逻辑门电路的集群,构成了“计算机”,计算机按照约定的顺序和位置,不停的执行人类的指令。为了让人类能够灵活的,自由的使用计算机内部的各种器件,人类编写了一个庞大的软件,称为“操作系统”,它负责协调组织计算机的所有“硬件”。

        形象化一些,操作系统是你的小管家。你家里有很多家电、书籍、衣物、食品等,都由你的小管家帮你管理。当你需要什么东西的时候,只需要找你的小管家即可,无需自己去翻箱倒柜的寻找。

0.1.2. 分类

在这里插入图片描述
当前主流操作系统,按照其名称,主流的有:

  • Windows(微软:家用)
  • MacOS(苹果:设计/编程,Unix)
  • Linux(Linus:服务器,Unix Like)
  • BSD(Berkeley Software Distribution,服务器,如FreeBSD、NetBSD和OpenBSD,Unix Like)
  • IOS(苹果:Unix)
  • Android (谷歌:Unix Like,Linux再套一层UI)

按照API(Application Programming Interface)规范分类有:

  • POSIX:MacOS Linux BSD IOS Android
  • 其它:Windows

下面是一张Unix系统的版本树进化图可供参考:
Unix Evolution

0.1.3. “约定”的意义

        POSIX:可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX )是IEEE(电气电子工程师学会)为要在各种UNIX操作系统上运行的软件而定义的一系列API标准。分为2个部分:

  • 第一部分是针对API,第二部分是针对用户交互和工具,其国际标准名称是IEEE Std 1003.9-1992(https://ieeexplore.ieee.org/document/182910)
  • 第二部分是针对用户交互和工具,其国际标准名称是ISO/IEC 9945-2:19939 ANSI/IEEE Std 1003.2-1993(https://ieeexplore.ieee.org/document/8584040)。

        简单来说,POSIX就像是有一位法官,规定了世界上所有的手机充电器,必须是长成什么样子,这样子任何一个工厂只需要按照这个规定来生产充电器和手机,那么全世界的充电器都可以给世界上任意一台手机充电了。

在这里插入图片描述
【参考文献】:
[1]. Dennis M. Ritchie. The UNIX system: The evolution of the UNIX time-sharing system. Nokia Bell Labs, AT&T Bell Laboratories Technical Journal, October 1984.
[2]. History and Timeline. The Open Group.
[3]. 一口Linux. posix是什么都不知道,还好意思说你懂Linux?. 知乎, 2021-07-23.
[3]. 阮一峰. Unix版权史. ruanyifeng.com, 2010年3月18日.

0.2. 快递员和他的工作:变量和函数

0.2.1. 计算的步骤

  • 我们先来看计算机计算乘法的过程,和小朋友做作业是否一样呢?

计算的过程:👉找数字 👉算算术 👉写答案

0.2.2. 作用域和声明周期

现在,我们用快递员一天的工作来举例,讲讲变量的作用域和生命周期:

  1. 快递员像是变量,每天送不同的东西(赋值可以变化)
  2. 快递员上班(变量声明)
  3. 快递员每天的工作场所就是取货点和驿站(工作区域 → 大括号作用域,起作用的区域)
  4. 下班 → 出了作用域,他就没法送货了(变量生命周期结束)
  • 例0-2-2-1:快递员的一天
    让我们实践一下,尝试编译下面的代码,看会发生什么,为什么?
int main(int argc, char** argv){
	// E1 start
	bool is_ready = true;  // 快递员开始上班了 
    if (is_ready) { // 判断:快递员上班了吗?
	    int courier = 10; // 快递员手里有10个快递 
	    int deliver_count = 1; // 每次送达1个 
    	  printf("送货前:快递员手里还有%d件快递\n", courier);
    	  courier = courier- deliver_count;
    	  printf("送货后:快递员手里还有%d件快递\n", courier);
    }
    printf("下班了:快递员手里还有%d件快递\n", courier);
	// E1 end
}

在这里插入图片描述
最后,我们猜一下,我们使用完的内存,在超出了作用域以后,里面还有东西吗?

内存本身不会被主动清零
手动分配的(堆)内存(new/malloc):必须显式释放(delete/free)
全局/静态变量:生命周期到程序结束。
函数内的普通变量(如 int, float, 对象等)分配在栈上,后续的栈操作(如函数调用)可能覆盖该内存。

备注:这里的内容按照孩子们目前的知识量是无法理解的,这里的特别注意是写给老师注意的,老师需要自己组织语言告诉孩子内存没释放是很危险的,释放内存要从娃娃抓起。

0.3. 你的衣服谁生产的:什么是函数(库)

  • 例0-3-1:你在商店购买一件红色布料,黑色纽扣的男童衬衣,这背后发生了什么?

我们来看:

  1. 服装厂向塑料制品加工厂订购了一批黑色纽扣;
  2. 服装厂向纺织厂订购了一批红色布料;
  3. 服装厂使用黑色纽扣和红色布料生产了一批男童衬衣;
  4. 商店向服装厂购买了100件红色布料黑色纽扣的男童衬衣;
  5. 你在商店买到了衣服。

请添加图片描述

在这整个流程(流转的过程)中,服装厂不知道塑料制品加工厂、纺织厂如何生产的各种产品,但是它知道只要告诉它们所需的颜色、尺寸,他们就能提供对应的产品!

  • 例0-3-2:让我们用编程知识来分析这其中的关键点吧:
  1. 塑料制品加工厂、纺织厂、服装厂就像函数(方法)库,里面有各种各样的函数,比如裁剪、缝纫、装箱、下单、送货。
  2. 有些函数可以提供给外部使用,比如下单。还有些函数只能自己内部使用,比如裁剪、缝纫。
  3. 一些函数需要参数,来告诉它客人需要什么东西,比如塑料制品加工厂提供的函数就规定了,必须告诉它需要什么东西(纽扣),以及颜色(黑色)和数量。

观察物体至少考虑5点要素:颜色、大小(体积)、方向、位置、数量
思考事件至少考虑5点要素:时间(When)、地点(Where)、人物(Who)、事件(What)、原因(Why)

至此,整个买衣服的流程就可以整理成为更加清晰的流程:

  1. 服装厂通过钮扣厂提供的下单函数(函数名),向塑料制品加工厂订购了1000(参数1)个黑色(参数2)的纽扣(参数3);
  2. 服装厂通过纺织厂提供的下单函数(函数名)订购了500(参数1)米红色(参数2)布料;
  3. 服装厂将步骤2订购的红色布料(步骤2函数调用的返回值),送到了自己工厂的生产车间,让裁剪部门负责裁剪(函数名)成衣服毛坯(返回值类型),又把裁剪出的衣服毛坯(裁剪函数返回值)和步骤1订购的黑色纽扣(步骤1函数调用返回值)送到缝纫部门进行缝纫(函数名)并要求生产200件衬衣(指定返回值),最后缝纫部门一共生产出了200件红色布料黑色纽扣的男童衬衣;
  4. 商店通过服装厂的下单函数(函数名),订购了10(参数1)件红色布料黑色纽扣的男童衬衣(参数2),过了几天,收到了货物(服装厂下单函数的返回值);
  5. 你在商店买到了衣服。

请添加图片描述

0.4. 小管家帮你拿衣服:函数声明、系统环境变量

别人是如何让我能调用他写的函数的?我能不能也让别人可以调用我的函数?
当然可以,让我们学习函数的声明、头文件(header)和源码文件之间的关系吧!

  • 例0-4-1:有一天,你需要洗衣服,于是你拿过来一个“服务菜单”,上面记录了你的小管家能帮你做的所有事情。你发现服务列表里,有存取物品和洗衣服服务,那这件事不就可以直接让小管家去做了吗?你的小管家(操作系统)帮你洗衣服(运行程序),整个过程可以整理成这样的:
  1. 你查看**服务菜单(小管家头文件)**确认小管家会不会洗衣服;
  2. 你给小管家写指令(编写源代码),里面用到了小管家可以提供的服务(引用头文件+调用外部函数);
  3. 小管家拿到你写的指令本(程序源代码),发现需要用到的东西是衣服和洗衣机(预编译指令引用了洗衣机的说明书),于是通过**“家庭物品位置索引”记事本(环境变量),查到洗衣机在阳台,衣服在衣柜,洗衣机说明书在书架(系统函数库)**里;
  4. 小管家找到了洗衣机,然后按照它的使用说明(系统函数库里洗衣机的头文件),去阳台(索引指向的第三方依赖 or 要链接的源码的位置),把洗衣机需要洗的脏衣服(参数)丢进去开始洗(系统调用 or 链接源码);
  5. 存取衣服的操作也是同样的道理。

在这里插入图片描述
由这个例子我们可以看出,函数声明和环境变量最主要的作用可以比喻成去饭店吃饭:

  1. 你是客人,要在餐馆点餐,先要看菜单里有没有(头文件有没有定义)
  2. 你是客人,你点不同的菜(函数),就要付不同的钱(参数),餐馆就会给你不同的结果(功能实现)
  3. 你是厨师,就要告诉客人你会做什么菜(函数定义),需要多少钱(参数定义),你做的菜的照片(返回值定义)
  4. 你是厨师,做饭的时候需要用到的工具和蔬菜(第三方依赖),需要查阅餐馆的仓库清单(环境变量 or 系统函数库)

Unix(like)系统中定义环境变量:

系统变量:/etc/profile
用户变量:~/.bashrc

Windows中定义环境变量

系统变量:Windows徽标键 -> 设置 -> 系统 -> 高级系统设置 -> 环境变量 -> 系统变量
用户变量:Windows徽标键 -> 设置 -> 系统 -> 高级系统设置 -> 环境变量 -> %UserName%的用户变量

使用预编译指令告诉编译器需要使用别人提供的功能

#include 头文件名.h

备注:尝试自己编写一个头文件,并在main中引用自己编写的服务

0.5. 参数:形参和实参的区别

  • 我们先来看一个简单的例子:发苹果
#include <iostream>
#include <string>
using namespace std;

int fa_pingguo_1(int a){ // 值传递
	printf("fa_pingguo_1:我的名字叫小a,我家地址为:%d号,我家里有%d个糖果\n", &a, a);
	a = a + 1;
	printf("fa_pingguo_1:我是住在%d的小a,现在我家里有%d个糖果啦!\n", &a, a);
	// 总结:可以理解为,main里面的小a有几个糖果,就发给fa_pingguo_1里的小a几个糖果 
}

// 引用传递,收到的是“家庭住址”,加*号来“住址”变量和普通变量
int fa_pingguo_2(int* a){ 
	// 操作地址变量时不带*号可以直接看地内存址是多少,带了则看里面存的东西 
	printf("fa_pingguo_2:我的名字叫小a,我家地址为:%d号,我家里有%d个糖果\n", a, *a);
	*a = *a + 1;
	printf("fa_pingguo_2:我是住在%d的小a,现在我家里有%d个糖果啦!\n", a, *a);
	// 总结:可以理解为,直接按照main里面的小a家的地址,去发苹果 
}

int main(int argc, char** argv){
	int a = 5; // 实参 
	printf("main        :我的名字叫小a,我家地址为:%d号,", &a);//&号可以取到变量的内存地址
	printf("我家里有%d个糖果\n\n", a);//不用&号,取到的是地址里面放的东西
	
	// 发糖果 
	printf("main        :第一次开始发糖果(值传递)\n");
	fa_pingguo_1(a); // 传递实参的值
	printf("main        :我是住在%d的小a,第一次发糖果后,我家里有%d个糖果\n\n", &a, a);
	
	// 发糖果 
	printf("main        :第二次开始发糖果(引用传递)\n");
	fa_pingguo_2(&a); // 传递内存地址
	printf("main        :我是住在%d的小a,第二次发糖果后,我家里有%d个糖果\n\n", &a, a);
	
	/*
		总结:
		普通变量看内容:直接用变量名
		普通变量看地址:前面加&
		地址变量看内容:前面加*
		地址变量看地址:直接用变量名 
	*/
	
	// 暂停 
	cin.get(); 
	cin.get(); 
}

运行结果如下:
在这里插入图片描述

总结:
1. 普通变量看内容:直接用变量名
2. 普通变量看地址:前面加&
3. 地址变量看内容:前面加*
4. 地址变量看地址:直接用变量名

普通要值直接喊,
想看地址 & (安)去办!
指针要值加 * (星)号,
指针地址原名算!

  • 还可以用一个复杂的例子来讲解:
    在这里插入图片描述
#include <iostream>
#include <string>
using namespace std;

// 洗衣函数(指针版)
void wash_with_pointer(string* name, string* state, int temp) {
    *state = "干净";
    *name += "(指针版已洗)";
}

// 洗衣函数(值传递版)
void wash_by_value(string name, string state, int temp) {
    state = "干净";
    name += "(值传递版已洗)";
}

int main() {
    cout << "=== C++洗衣方式对比演示 ===" << endl;
    
    // 准备两组相同的衣物
    string pointer_coat = "红色外套", pointer_state = "脏";
    string value_coat = "红色外套", value_state = "脏";

    // 洗衣前状态
    cout << "\n洗衣前状态:";
    cout << "\n[指针组] " << pointer_coat << ":" << pointer_state;
    cout << "\n[值传递组] " << value_coat << ":" << value_state;

    // 开始洗衣(相同水温40℃)
    wash_with_pointer(&pointer_coat, &pointer_state, 40);
    wash_by_value(value_coat, value_state, 40);

    // 洗衣后状态
    cout << "\n\n洗衣后状态对比:";
    cout << "\n[指针组] " << pointer_coat << ":" << pointer_state;
    cout << "\n[值传递组] " << value_coat << ":" << value_state;

    // 原理说明
    cout << "\n\n原理分析:";
    cout << "\n指针传递:函数内修改直接影响原变量";
    cout << "\n值传递:函数内修改的是副本,原变量不变";
    cout << "\n提示:可以观察两组外套名称的变化差异\n";

    return 0;
}

1. 实践:修改程序使用C++函数库

1.1. 尝试修改库文件引用

试试<stdio.h>和<iostream.h>调用printf,会发现一样的。

1.2. 修改printf为cout

给孩子讲解namespace(命名空间)。初衷是为了避免重复的函数命名,比如塑料制品厂和纺织厂都有下单函数,服装厂的采购人员采购纽扣和布料,很明显不能用同一张单据,怎么办?于是塑料制品厂的采购单前面增加一个台头,叫:塑料制品厂采购单,而纺织厂的采购单叫做布料采购单。

<stdio.h>里没有cout,<iostream.h>有cout。iostream是stdio“增强版”。

1.3. 实现一个你去商店买衣服的函数

  • 在Dev-C++ 5.11版本中编译器选择TDM-GCC 4.9.2尝试不加namespace而使用cout和cin试试会发生什么?为什么?初识软件的版本管理。

  • 尝试把buy函数写在main函数下面试试会发生什么?为什么?理解程序的顺序执行结构。

#include <iostream>
#include <string>

using namespace std;

int buy(string color, string product, int count){
	cout << "请查收" << count << "件" << color << "的" << product << "\n";
}

int main(int argc, char** argv){
	string product;
	string color;
	int count;
	cout << "请告诉我您要买什么:";
	cin >> product;
	cout << "请告诉我您什么颜色的:";
	cin >> color;
	cout << "请告诉我您几件:";
	cin >> count;
	buy(color, product, count);
}

编程时,最常遇到的问题有2种:(依赖的)版本不兼容和路径(门牌号)错误
解决不兼容问题有一句名言:在计算机领域内的问题,没有什么是多抽象一层解决不了

在这里插入图片描述

2. Conclution:

  1. 操作系统屏蔽了硬件层的复杂管理,所有硬件生产厂商需要面向操作系统定义的标准,提供硬件的使用方法。所有要使用硬件的用户,需要按照操作系统定义的使用规范来调用硬件。所以,操作系统就是一个抽出来的“中间层”
  1. 变量有作用域,是在{和}内,超出以后会出错
  1. 变量有生命周期,写代码要注意哪些类型需要手动释放内存
  1. 想用别人提供的功能,要用#include指令告诉计算机,你要用谁提供的功能
  1. 值传递和引用传递即使现在用不着,也要背熟:
    普通要值直接喊,
    想看地址 & (安)去办!
    指针要值加 * (星)号,
    指针地址原名算!
Qwen2、Llama 3、Mistral开源大模型实战选型指南 大语言模型(LLM)的选型本质是工程范式匹配问题:Llama 3代表通用基座优先的最小公分母策略,Qwen2体现全栈能力对齐的中文深度优化,Mistral则践行推理效率至上的边缘计算原教旨主义。三者在上下文扩展技术(RoPE外推/动态NTK/YaRN)、多语言支持机制(语料清洗粒度、跨语言对比学习)及安全对齐路径(PPO vs DPO)上存在不可互换的技术分叉。对于中文长文本处理、RAG知识库构建、边缘端代码生成等高频落地场景,模型性能差异远不止参数量或榜单分数,而取决于其底层注意力设计(如GQA、SWA) 阅读详情

相关推荐

浏览器端视频摘要工具:3步实现离线、隐私、可交互的结构化提效

视频摘要本质是将非结构化音视频内容转化为可检索、可跳转、可复用的知识单元。其技术原理涵盖元数据解析、语音转文字(ASR)、语义分段与多粒度摘要生成,核心价值在于降低认知负荷、提升信息吸收效率。相比依赖LLM API的云端方案,客户端轻量化处理保障隐私安全与离线可用性,特别适合学生精学课程、运营追踪动态、创作者素材管理等高频场景。本文聚焦基于WebAssembly与TinyBERT的纯前端实现路径,详解YouTube视频的免密钥解析、时间锚点校准及可交互摘要视图构建。

cm333666的博客 513

CPP-L1备课记录

教孩子CPP

crazy_rays的专栏 1173

Gemma 4 12B手机+服务器双端部署实战指南

大语言模型(LLM)的终端落地正从‘能否运行’迈向‘如何可靠运行’。Gemma 4 12B作为首个在消费级硬件实现高密度推理的精算型大模型,其核心价值在于通过Qwen-Quant量化、动态KV Cache裁剪和分片式RoPE等技术,在保持12B参数能力的同时显著降低硬件门槛。这使其天然适配边缘计算场景——如医疗本地推理、工业离线识别、教育合规陪练等对数据不出域、低延迟、强隐私有硬性要求的应用。本文聚焦真实工程约束,详解Android手机(小米14/Adreno)、轻量云服务器(Intel CPU)及跨平台协

weixin_30645617的博客 447

Xournal++:如何用这款开源笔记软件提升你的数字手写体验?

在数字时代,你是否还在寻找一款真正专业的跨平台手写笔记软件?Xournal++为你提供了完美的解决方案!这款基于C++和GTK3开发的开源软件,不仅支持PDF批注和压感笔输入,更在Linux、macOS和Windows三大平台上提供一致的专业体验。无论你是学生、教师、设计师还是研究人员,Xournal++都能满足你对数字笔记的所有需求。 ## 🚀 5分钟快速入门指南 ### 一键安装步骤 X

gitblog_00905的博客 237

M2.7开源模型:本地化自我进化与模块化评估引擎实战

大模型的‘自我进化’正从云端训练范式转向终端可审计的轻量闭环——其核心是模型生命周期管理(MLM)能力的工程化下沉。本文围绕模块化评估代理(MEA)、轻量级进化沙箱(LES)和厂商适配桥接层(VAB)三大非AI基础设施展开,解析如何在不上传数据、不依赖GPU集群的前提下,实现基于真实交互反馈的定向微调与持续优化。技术价值在于将A/B测试、灰度发布、热更新等复杂流程压缩为可配置、可验证、可嵌入固件的标准化模块,广泛适用于IoT语音设备、离线教育助手、医疗健康终端等对隐私、延迟与资源敏感的边缘场景。M2.7正是

weixin_33801856的博客 466

AI学习者生存地图:提升知识消化率的实操转化指南

AI学习的本质瓶颈已从信息获取转向知识消化率——即从技术输入到可执行输出的转化效率。理解这一概念,需把握其核心原理:学习不是线性吸收,而是通过环境验证、失败调试、认知反馈构成的闭环过程。其技术价值在于显著提升非科班学习者的实操韧性与长期复用能力,避免‘学了不会用’的断层困境。典型应用场景包括本地LLM部署、RAG系统搭建、跨工具链调试等真实开发环节。本文聚焦‘如何把读完一篇博客转化为跑通一段代码’这一关键跃迁,深度融合AI学习路径与社区驱动的实操转化方法论。

342

Springboot少儿编程管理系统760av(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

项目功能:课程分类,家长,课程信息,购买课程,完整课程,学生信息,通知公告。

2501_93125124的博客 806

小公司AI落地三件套:API调用+无低代码+轻量开源模型

AI落地正从大模型训练转向工程化集成,核心在于将通用智能能力快速嵌入业务流程。其原理是通过商用API获取稳定可靠的推理服务,借助无代码/低代码平台实现业务逻辑与技术实现的高效对齐,并以轻量开源模型补充特定场景下的可控性与定制能力。这种组合显著降低算力门槛与开发成本,提升一线员工使用意愿和响应效率,广泛适用于客服知识库、销售线索分发、数据看板及终端AI助手等高价值场景。本文聚焦小企业真实交付经验,详解API选型策略、无低代码平台配置要点及轻量模型量化部署实践。

java2000.net 578

智能体PC实战指南:CPU+GPU+NPU协同与AI SSD如何实现本地真可用

智能体PC不是单纯堆算力,而是多模态任务在本地高效协同的系统工程。其核心在于理解‘智能体’作为跨模型原子操作单元的本质——需CPU调度、GPU视觉处理、NPU语言解码三者低延迟协同,并依托AI SSD扩展显存边界、突破内存瓶颈。技术价值体现在隐私可控、响应实时、部署极简三大维度,广泛应用于会议纪要生成、财务审计、教师备课与家庭中枢等真实工作流。本文聚焦Intel酷睿Ultra平台实测经验,解析NPU专用加速、可调显存技术与AI SSD硬件卸载等关键技术如何让Qwen3.5系列大模型在16GB轻薄本上稳定运行

aikenqiu5098的博客 331

高考数学AI解题实战:Gemini与Deepseek的Matlab代码可靠性对比

AI辅助数学解题已从概念走向课堂落地,其核心在于将自然语言题干准确转化为可执行、可验证的Matlab代码。这涉及语义理解、解法映射与代码鲁棒性三层能力,远超通用大模型的问答范畴。Gemini在题干解析与符号约束识别上表现稳定,Deepseek则在复杂符号推导中展现更强算力,但二者均面临Matlab版本兼容性、API可用性及服务稳定性等工程挑战。教育场景下,“可运行的正确答案”比“理论上最优解”更具教学价值。本文聚焦高考数学典型题型,结合DeepAI平台编排、本地Matlab验证与版本适配实践,系统揭示AI生

weixin_33834628的博客 475

统计信号处理基础 习题解答1-1

1-1:在雷达习题中,双程延时时间的估计量具有PDF τ0~Nτ0,στ02,其中τ0是真值。假如要估计距离请提出一种估计量R,并求它的PDF。然后,确定标准偏差στ0,使得距离估计值的99%在真值的100m以内,对电磁波传播速度取c=3×108m/s。 解答: 问题1: 由于电磁波传播速度c,信号可观察的双程传播延时τ0和双程传播距离τ0满足关系: R=cτ02 因此可采用如下估计量: R=cτ02 问题2: 由于τ0满足正态分布,且: Eτ0=τ0 varτ0=στ02 那么: E

weixin_43270276的博客 2805

跨平台数字笔记神器Xournal++:告别纸质笔记的终极解决方案

还在为纸质笔记难保存、难整理而烦恼吗?是否在寻找一款真正专业的手写笔记软件?Xournal++就是你的完美答案!这款功能强大的跨平台数字手写笔记软件,支持PDF批注和压感笔输入,让数字笔记体验达到专业级别。无论你是学生、教师、设计师还是研究人员,Xournal++都能满足你对数字笔记的所有需求。 ## 数字笔记的三大痛点,Xournal++如何一一解决? ### 痛点一:PDF文档批注困难

gitblog_00985的博客 261

java 二维码生成及其标签打印

本文主要内容 二维码生成 二维码标签预览及打印 二维码生成 笔者此次的二维码是通过调用第三方接口生成的,具体流程如下: 根据规范要求调用第三方接口,返回二维码下载地址及二维码图片的属性值(图片大小等) 根据返回的值获取二维码下载地址,根据地址下载二维码图片,保存至本地磁盘及记录数据信息 扫描二维码跳转相应地址,显示资产的基本信息 最终生成的二维码如下图所示: 预览并批量打印二维码标签 先...

孙小牟的博客 4940

Springboot少儿教育网站k5t0n(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

2]赵梓皓,崔应留,葛晨,沈盈之,雷妤婷.基于SpringBoot的社区防控管理系统的设计与实现[J].软件,2022,43(10):154-159.[4]詹志钦,温栋才,张东娜.基于LBS技术的社区服务系统的设计与实现[J].电脑知识与技术,2017,13(21):233-235.[11]凌美霞,陈嘉雯,张玲,宗慧琳,林小芳,沈丹.南通市智慧社区建设研究[J].中国标准化,2022,(S1):295-299.查阅相关文献资料,结合应用实际,明确设计(论文)内容,了解完成工作所需软硬件环境。

a55559595959的博客 844

EEGLAB数据预处理基本流程GUI实操指南

按钮,会出现如上图所示的长条形对话框,方框里面是所有电极的名称,这时将需要的剔除的电极选择上,如上图,我选择了 VEOG这个电极(该电极表示是垂直眼电),然后点“OK”,在弹出的对话框中自行确定是否需要修改命名。坏导是指在数据采集时,由于各种原因(如,电极本身问题或阻抗不好等)导致数据记录有问题,但是在后期又特别想要该通道的数据,那么就可以利用插值的方法进行——利用该导联周边的几个电极点的均值作为该导的数据。上图的图是通过IClabel的工具箱进行自动判断的,可以帮助自动识别出哪些是Eye的成分。

fdgdf5535的博客 6393

【已解决,极简单!!】求助,R语言读取csv文件各种报错

【已解决】本来之前没问题,今天更新了Rstudioh以及R,就各种报错了。也看了目前能读取到的文件,从第一个中文字符直接就没有了。也就是说 还是读取中文字符的问题?新人初学,求大佬轻喷!

youyouluming945的博客 3876

CCCC酱油记

  这次怕是真的打酱油了。。。   打完就退役了吧,或者说是薛定谔的退役?。。。不过如果有什么比赛缺人的话还是欢迎来找我的。。。只要不嫌我坑就好了。。。有大腿抱就更好了。。。 day-1:   上午一节离散,感觉离散老师真是太强了。。。从开学第一节课,到现在也就10节课。。。已经给我们讲了动物世界,中美教育的差异,古代的科举制度与现代高考制度的异同,从罗素讲到达芬奇再说到学校系统的...

ailiao2015的博客 170

20231126-超详细Isaac Gym安装教程(基于双系统版本)

我一开始使用了WSL2虚拟环境试了集群服务器里面的交互式桌面,但是都失败了,WSL2因为没办法调用系统的GPU,应该有办法配置但我放弃了,感兴趣的可以自己探索(图片贴出来了)。服务器上出现的问题是Segmentation fault (core dumped),目前还没解决,有可能是驱动和cuda版本的问题(后面有时间再解决)等上图右边都达到了100%,就创建了一个名为rlgpu的conda环境,然后会出现success。注意安装版本要低于3.9!参考链接:非常详细,大家直接看这个博主的安装就行。

m0_37802038的博客 2万+

Xournal++:手写笔记与PDF批注的跨平台免费开源解决方案

你是否曾为数字笔记软件的功能限制而烦恼?要么功能简单但无法批注PDF,要么功能强大却价格昂贵?现在,一个完全免费、开源且功能强大的手写笔记软件Xournal++为你提供了完美的解决方案。这款基于C++与GTK3开发的跨平台工具,支持Linux、macOS和Windows系统,不仅能满足日常笔记需求,还能高效处理PDF批注任务,让你的数字笔记体验达到专业水准。 ## 三分钟快速上手:从零开始使用X

gitblog_00026的博客 389

基于多模态融合的反无人机视觉跟踪算法研究

本研究提出了一种基于多模态融合的反无人机视觉跟踪算法,通过整合可见光、红外、深度等多种视觉信息源,提高了对无人机的跟踪精度和可靠性。设计并实现了多模态特征提取方法,针对不同模态图像的特点提取了有效的特征信息,为多模态融合提供了基础。研究了多种多模态融合策略,包括特征级融合、决策级融合和混合融合,并通过实验对比分析了它们的优缺点,确定了适合反无人机视觉跟踪的融合方法。选择并改进了跟踪算法,将多模态融合信息融入到跟踪过程中,提高了算法对复杂环境和无人机运动变化的适应性。

AI的内部世界的博客 1350

OAI-5G开源通信平台实践(一)-安装 部署及RFsimulator基本测试

OAI (Open Air Interface) 是目前开源5G/4G项目中最完善、最成熟的一个,并且仍然在持续更新。其包含基站、终端及核心网网元的代码,可基于x86\arm+射频卡搭建实际硬件平台,也可在x86平台上对rf\phy等层进行模拟,做各网元协议栈的单独测试验证。本文总结了x86平台下,oai的安装及运行方式。包括NTN分支和主分支的rf simulator、nos1、端到端部署等场景的验证流程,同时总结了验证过程中遇到的问题及解决方法。

十年通信老兵的技术修炼之路——从3G到5G,从地面基站到卫星通信。 2963

程序员curd编程是什么_编程明明是程序员的工作,关小学生什么事?

这是奴隶社会的第2100篇文章Photo byKobu AgencyonUnsplash.作者:张砷镓,一名具有独立思考能力和代码洁癖,且兴趣爱好广泛的程序猿,曾任赶集黄页事业部技术经理,现从事编程教育工作。骨灰级游戏玩家,曾在魔方、扫雷、俄罗斯方块等领域取得国内第一,多次打破全国记录,扫雷网(saolei.net)创始人。本文来自:镓话(ID:jia-talking)。写在前...

weixin_39611174的博客 736

RK3588 hdmiout调试(一)

RK3588 hdmiout调试(一)

目前从事linux驱动开发,多交流多学习吧 5169
上一篇: CPP-L1备课记录
相信光的疯子
博客等级 码龄18年 91粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值