洛谷 P9007 [入门赛 #9] 最澄澈的空与海 (Hard Version)
这道题可不入门。
[Problem Discription] \color{blue}{\texttt{[Problem Discription]}} [Problem Discription]
给定 n n n,求有多少组 ( x , y , z ) (x,y,z) (x,y,z) 满足:
- x − y z = n ! x-\dfrac{y}{z}=n! x−zy=n!
- x − y z = n ! n \dfrac{x-y}{z}=\dfrac{n!}{n} zx−y=nn!
其中 n ! n! n! 表示 n n n 的阶乘,即 ∏ i = 1 n i \prod\limits_{i=1}^{n} i i=1∏ni。 x , y , z x,y,z x,y,z 为整数,可以是负整数。
多组询问。 1 ≤ T ≤ 1 × 1 0 5 , 1 ≤ n ≤ 1 × 1 0 6 1 \leq T \leq 1 \times 10^{5},1 \leq n \leq 1 \times 10^{6} 1≤T≤1×105,1≤n≤1×106。
[Analysis] \color{blue}{\texttt{[Analysis]}} [Analysis]
作为一个经历了高考摧残的人,最会干的事情就是化简冗长的式子。
干瞪眼看不出这两个式子有什么规律,变量太多了,因此考虑先消元。
由 x − y z = n ! x-\dfrac{y}{z}=n! x−zy=n! 得 x = y z + n ! x=\dfrac{y}{z}+n! x=zy+n!,把它带入第二个式子中可得:
x − y z = y z + n ! − y z = y + z n ! − z y z 2 = n ! n \begin{aligned} \dfrac{x-y}{z}&=\dfrac{\dfrac{y}{z}+n!-y}{z}\\ &=\dfrac{y+zn!-zy}{z^2}\\ &=\dfrac{n!}{n} \end{aligned} zx−y=zzy+n!−y=z2y+zn!−zy=nn!
通分,
n y − n z n ! − n z y = n ! z 2 n ( z − 1 ) y = n ! z ( n − z ) y = ( n − 1 ) ! z ( n − z ) z − 1 \begin{aligned} ny-nzn!-nzy&=n!z^2\\ n(z-1)y&=n!z(n-z)\\ y&=\dfrac{(n-1)!z(n-z)}{z-1} \end{aligned} ny−nzn!−nzyn(z−1)yy=n!z2=n!z(n−z)=z−1(n−1)!z(n−z)
因此,满足题意的 ( z − 1 ) (z-1) (z−1) 一定是 ( n − 1 ) ! z ( n − z ) (n-1)!z(n-z) (n−1)!z(n−z) 的因数。除了 z = 2 z=2 z=2 外, ( z − 1 ) (z-1) (z−1) 不会是 z z z 的因数,且 gcd ( z − 1 , z ) = 1 \gcd(z-1,z)=1 gcd(z−1,z)=1,因此 ( z − 1 ) (z-1) (z−1) 为 ( n − 1 ) ! ( n − z ) (n-1)!(n-z) (n−1)!(n−z) 的因数。然而这个式子上下都含有 z z z,愚蠢的人脑是分析不出什么东西来的。
考虑引入新的参数 k k k。
( n − 1 ) ! ( n − z ) = k ( z − 1 ) n ! − ( n − 1 ) ! z = k z − k [ ( n − 1 ) ! + k ] z = n ! + k z = n ! + k ( n − 1 ) ! + k \begin{aligned} (n-1)!(n-z)&=k(z-1)\\ n!-(n-1)!z&=kz-k\\ \left [ (n-1)!+k\right ]z&=n!+k\\ z&=\dfrac{n!+k}{(n-1)!+k} \end{aligned} (n−1)!(n−z)n!−(n−1)!z[(n−1)!+k]zz=k(z−1)=kz−k=n!+k=(n−1)!+kn!+k
实话实说,这是一个非常美的式子,可惜它和上面一样,上下都含有 k k k,因此从难度上并没有变化。
思路貌似到这里就断了,怎么办?当然是看题解去(bushi)。
上面是把消去了 x x x 保留 y y y,行不通的时候当然试试消去 y y y 留下 x x x 啦。
也不用重新计算,只需要把 y y y 用 z z z 表达的那个式子带入 x x x 中,就可以得到:
x = y z + n ! = ( n − 1 ) ( n − 1 ) ! z z − 1 x=\dfrac{y}{z}+n!=\dfrac{(n-1)(n-1)!z}{z-1} x=zy+n!=z−1(n−1)(n−1)!z
同样, z ≠ 2 z \not = 2 z=2 时, ( z − 1 ) (z-1) (z−1) 不是 z z z 的因数,因此 ( z − 1 ) (z-1) (z−1) 一定是 ( n − 1 ) ( n − 1 ) ! (n-1)(n-1)! (n−1)(n−1)! 的因数。 z = 2 z=2 z=2 时, z − 1 = 1 z-1=1 z−1=1 当然也是 ( n − 1 ) ( n − 1 ) ! (n-1)(n-1)! (n−1)(n−1)! 的因数。
因此问题转化为求 ( n − 1 ) ( n − 1 ) ! (n-1)(n-1)! (n−1)(n−1)! 的因数的个数。这个问题和原问题是等价的。记答案为 ans ( n ) \text{ans}(n) ans(n)。
为什么?
考虑 ( n − 1 ) ( n − 1 ) ! (n-1)(n-1)! (n−1)(n−1)! 的一个因数 z z z,带入上式就一定可以唯一的算出一个 x ( z ) , y ( z ) x(z),y(z) x(z),y(z), x ( z ) x(z) x(z) 必然是一个整数。而 y = z ( x − n ! ) y=z(x-n!) y=z(x−n!)(由最开始的式子变形而来)在 x , z x,z x,z 都是整数的情况下当然是整数。因此一个 z z z 就唯一确定一组 ( x , y , z ) (x,y,z) (x,y,z),而不同的 z z z 确定的当然是不同的 ( x , y , z ) (x,y,z) (x,y,z)。两个问题的解构成一一映射。
根据因数个数定理,我们需要求的就是 ( n − 1 ) ( n − 1 ) ! (n-1)(n-1)! (n−1)(n−1)! 不同质因数出现的次数。
设每个质因数出现的次数为 f ( p i ) f(p_{i}) f(pi)。答案即为 ∏ i = 1 prime count ( 1 + f ( p i ) ) \prod\limits_{i=1}^\text{prime count}\left (1+f(p_{i}) \right ) i=1∏prime count(1+f(pi))。
不能每次都重新求,考虑怎么从 ans ( n − 1 ) \text{ans}(n-1) ans(n−1) 递推得到 ans ( n ) \text{ans}(n) ans(n)。
我们可以快速的将 n n n 和 ( n − 1 ) (n-1) (n−1) 分解质因数,然后 f ( p i ) f(p_{i}) f(pi) 减去 ( n − 1 ) (n-1) (n−1) 的质因数出现次数,加上两倍的 n n n 的质因数个数就行了(因为阶乘和阶乘前各有一个 n n n,所以是两倍)。
但是根号级别的分解质因数还是太慢了,能不能降低时间复杂度呢?
答案是可以的。如果我们知道 n n n 的质因数都有谁,就不用一个一个数去实验了。当然不能把所有质因数都记下来(都记下来了还要试除法干嘛了),但是通过线性筛,我们可以顺便得到每个数的最小质因数是多少。每次除以最小质因数就可以大大加快算法了。
配合线性求逆元,程序跑得飞快。
还漏了一个问题,在上面那个式子中, ( z − 1 ) (z-1) (z−1) 是作为分母的,因此 z ≠ 1 z \not = 1 z=1。有没有 z = 1 z=1 z=1 的情况呢?
z = 1 z=1 z=1 时有 x − y = n ! = n ! n x-y=n!=\dfrac{n!}{n} x−y=n!=nn!,因此 n = 1 n=1 n=1。因此只有 n = 1 n=1 n=1 时答案为无穷。
Code \color{blue}{\text{Code}} Code
int f[N],n,T,ans[N];int prime[N],prcnt;
bool is_prime[N];
int minn_prime[N];
void get_prime(int n){for(int i=2;i<=n;i++)is_prime[i]=true;for(int i=2;i<=n;i++){if (is_prime[i]){minn_prime[i]=i;prime[++prcnt]=i;}for(int j=1;j<=prcnt;j++){if (1ll*i*prime[j]>n) break;is_prime[i*prime[j]]=false;minn_prime[i*prime[j]]=prime[j];if (i%prime[j]==0) break;}}
}int ksm(int a,int b){自己写快速幂
}int inv[N],fac[N];void init_inv(int n){fac[0]=1;for(int i=1;i<=n;i++)fac[i]=1ll*fac[i-1]*i%mod;int tmp=ksm(fac[n],mod-2);inv[n]=1ll*fac[n-1]*tmp%mod;for(int i=n-1;i>=1;i--){tmp=1ll*tmp*(i+1)%mod;inv[i]=1ll*tmp*fac[i-1]%mod;}
}vector<pair<int,int> > prdiv;
void dp_init(int n){int cur=1;ans[0]=1;for(int i=1;i<=n;i++){prdiv.clear();int tmp=i;while (tmp!=1){int cnt=0,div=minn_prime[tmp];while (tmp%div==0){tmp/=div;cnt++;}prdiv.push_back(make_pair(div,cnt));}tmp=prdiv.size();for(int j=0;j<tmp;j++){int val=prdiv[j].first,cnt=prdiv[j].second;cur=1ll*cur*inv[1+f[val]]%mod;f[val]+=(cnt<<1);cur=1ll*cur*(1+f[val])%mod;}ans[i]=cur;for(int j=0;j<tmp;j++){int val=prdiv[j].first,cnt=prdiv[j].second;cur=1ll*cur*inv[1+f[val]]%mod;f[val]-=cnt;cur=1ll*cur*(1+f[val])%mod;}}
}int main(){get_prime(1e6);init_inv(1e6);dp_init(1e6);T=read();for(int Case=1;Case<=T;Case++){n=read();if (n==1) printf("inf\n");else printf("%d\n",ans[n-1]);}return 0;
}
相关文章:
洛谷 P9007 [入门赛 #9] 最澄澈的空与海 (Hard Version)
这道题可不入门。 [Problem Discription] \color{blue}{\texttt{[Problem Discription]}} [Problem Discription] 给定 n n n,求有多少组 ( x , y , z ) (x,y,z) (x,y,z) 满足: x − y z n ! x-\dfrac{y}{z}n! x−zyn! x − y z n ! n \dfrac{x-y…...
Java基础学完,继续深耕(0505)Linux 常用命令
昨天休息了一天,没有写csdn 昨天和今天把Linux大概学了一下。总结一下常用命令,总结的不全。 Linux目录结构 / 是所有目录的顶点 目录结构像一颗倒挂的树 注意:/itheima 是绝对路径,是指根目录 / 下的itheima目录 itheima…...
详解 FFMPEG 交叉编译 `FLAGS` 和 `INCLUDES` 的作用
FLAGS 和 INCLUDES这两行是 Android NDK 编译时的编译器选项,用于控制代码生成、优化、调试、安全性和头文件搜索路径。下面逐项详解: 1. FLAGS 详解(编译器选项) FLAGS 定义了传递给 C/C 编译器(如 clang 或 gcc&…...
DGI数据治理框架的最佳实践
以下是针对DGI数据治理框架的最佳实践推荐,结合其核心理念与实际应用场景,帮助组织高效落地数据治理,释放数据价值。 一、组织架构与角色分工 最佳实践1:建立清晰的数据治理委员会 • 实践要点: • 由高层领导&#…...
C++类与对象深度解析:从基础到应用
目录: 1. 类的基本概念与定义1.1 类的定义与访问限定符1.2 实例化与对象内存布局1.3 this指针 2.类的默认成员函数2.1 构造函数与析构函数详解构造函数析构函数 2.2 拷贝构造函数2.3 赋值运算符重载运算符重载 3. 初始化列表4.类型转换5. 静态成员6.友元和内部类6.1…...
JGQ611Ⅱ数据采集电除雾器实验装置
JGQ611Ⅱ数据采集电除雾器实验装置 一.实验目的 1.掌握电除雾器的结构特征与工作原理。 2.测定风压、风速、电压、电流板间距等因素对酸雾去除效率的影响。 3.测定电除雾器的工作效率。 二.技术指标 1.电场电压:0~20KV(可调)。 2.…...
如何判断cgroup的版本?
在 Linux 系统中,判断当前使用的 cgroup 版本(v1 还是 v2)可以通过以下几种方法: 方法一:查看挂载点(最直接) mount | grep cgroup输出分析 cgroups v1:存在多个以 cgroup 开头的…...
基于 Spark 和 Hadoop 的空气质量数据分析与预测系统
基于 Spark 和 Hadoop 的空气质量数据分析与预测系统 文章目录 基于 Spark 和 Hadoop 的空气质量数据分析与预测系统引言项目目标技术栈数据来源系统核心功能1. 用户认证与管理2. 数据总览3. 空气质量分析4. 词云图5. AQI 预测 项目结构预览关键代码分享1. Flask 主文件&#x…...
qt csv文件写操作
实例1: QStringList header; header << "1" << "2"; QStringList footer; footer << "Here is a footer"; QStringList strList; strList << "one" << "two" <&l…...
Java 反射
反射 反射的概述 获取class对象的三种方式 代码实现 package myreflect1;public class MyReflectDemo1 {public static void main(String[] args) throws ClassNotFoundException {//1.第一种方式//全类名:包名类名//最为常用Class clazz1 Class.forName("…...
Spring-使用Java的方式配置Spring
目录 前言 一、使用Java配置Spring 前言 使用纯Java的配置方式,在SpringBoot中随处可见,是必须要学习的 一、使用Java配置Spring 配置Spring有多种方式,我们现在要完全不使用Spring的xml配置了,全权交给Java来做! J…...
cudaMalloc函数说明
cudaMalloc函数说明 cudaError_t cudaMalloc(void** devPtr, size_t size);参数说明 devPtr (输出参数): 类型为 void**,即指向指针的指针。函数执行成功后,*devPtr 将被赋值为 GPU 内存的起始地址。例如:若分配一个 float 数组,需…...
路由协议(静态路由、RIP、OSPF、BGP)
目录 静态路由 RIP OSP BGP 总结 静态路由 定义:由网络管理员手动配置的路由。它不会自动更新,除非管理员手动修改。 特点: 简单:配置简单,适合小型网络。安全:不会与其他路由器交换路由信息&#x…...
基于 HTML5 的贪吃蛇小游戏实现
一、引言 在 Web 开发的世界中,利用 HTML、CSS 和 JavaScript 构建有趣的互动游戏是一项充满乐趣和挑战的任务。本文将详细介绍一个基于 HTML5 的贪吃蛇小游戏的实现过程,通过对代码的解析,带你了解如何打造一个经典的贪吃蛇游戏,…...
学习Linux的第二天
如何在Linux环境下做开发 Linux的一些基操 Tips:平常最表层的是命令行模式,最多见这个默认叫做命令行模式 Vi操作是什么意思呢 就是在提示符输入vi a.c 是可以创建一个a.c这个文件并进入这个输入模式 按i可以输入代码 要退出的时候按esc 再按:(冒号…...
rollout 是什么:机器学习(强化学习)领域
rollout 是什么:机器学习(强化学习)领域 指从特定初始状态开始,按照某个策略或模型进行一系列动作和状态转移,直到达到终止状态或预定时间步数 。比如: 迷宫任务:强化学习代理在迷宫中,从起始点出发,按某策略(如随机选方向走)进行移动,直到找到出口或达到最大移动…...
MATLAB人工大猩猩部队GTO优化CNN-LSTM多变量时间序列预测
本博客来源于CSDN机器鱼,未同意任何人转载。 更多内容,欢迎点击本专栏目录,查看更多内容。 目录 0 引言 1 数据准备 2 CNN-LSTM模型搭建 3 GTO超参数优化 3.1 GTO函数极值寻优 3.2 GTO优化CNN-LSTM超参数 3.3 主程序 4 结语 0 引言…...
android-ndk开发(3): 连接设备到开发机
android-ndk开发(3): 连接设备到开发机 2025/05/05 1. 术语解释 用来写代码的电脑, 我叫做开发机。 我打心底认为 Windows, Linux, macOS 都是 PC, 但是有些人不这么认为, 那就还是叫开发机。 android 手机能运行 app(众所周知…...
谷歌最新推出的Gemini 2.5 Flash人工智能模型因其安全性能相较前代产品出现下滑
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
Kubernetes排错(七)-节点排错
1、节点 Crash 与 Vmcore 分析 kdump 介绍 目前大多 Linux 发新版都会默认开启 kdump 服务,以方便在内核崩溃的时候, 可以通过 kdump 服务提供的 kexec 机制快速的启用保留在内存中的第二个内核来收集并转储内核崩溃的日志信息(vmcore 等文件), 这种机制需要服务…...
《架构安全原则》解锁架构安全新密码
The Open Group最新发布的《架构安全原则》标准中文版为企业架构、技术架构、解决方案架构以及安全架构领域的专业人员提供了一套系统化、可落地的安全设计准则。这一权威文件旨在帮助组织在数字化转型的复杂环境中构建既安全又敏捷的架构体系,其内容与TOGAF标准、N…...
生物化学笔记:神经生物学概论10 运动节律的控制 运动时脑内活动 运动系统疾病及其治疗(帕金森、亨廷顿)
运动节律的控制 运动时脑内活动 运动系统疾病及其治疗 口服多巴胺无法穿越“血脑屏障”,进不到脑子里去,其前体(原材料)能进入血脑屏障。一直吃药,机体会偷懒。另一方面,会影响脑子其他部分。 损毁也只能暂时解决,黑质…...
DDR在PCB布局布线时的注意事项及设计要点
一、布局注意事项 控制器与DDR颗粒的布局 靠近原则:控制器与DDR颗粒应尽量靠近,缩短时钟(CLK)、地址/控制线(CA)、数据线(DQ/DQS)的走线长度,减少信号延迟差异。 分组隔…...
Paramiko源码深入解析
Paramiko是一个基于Python的SSHv2协议实现库,支持远程命令执行、文件传输(SFTP)和安全隧道功能。以下是对其源码的深入解析,涵盖核心模块、关键流程及实现细节。 1. 核心模块与结构 Paramiko的源码结构围绕SSH协议的各个层次设计…...
音频感知动画新纪元:Sonic让你的作品更生动
前言 在现代肖像动画领域,如何精准地控制画面中的焦点,确保声音和画面完美契合,已成为了一个十分值得探索的话题。于是,Sonic 方法应运而生,这种创新的音频感知技术,旨在让肖像动画中的焦点能够与音频内容同步,从而提升整体的沉浸感和表现力。在ComfyUI 中实现这一功能…...
uniapp开发06-视频组件video的使用注意事项
uniapp开发-视频组件video的使用注意事项!实际项目开发中,经常会遇到视频播放的业务需求。下面简单讲解一下,uniapp官方提供的视频播放组件video的常见参数和实际效果。 1:先看代码: <!--视频组件的使用展示-->…...
英伟达语音识别模型论文速读:Fast Conformer
Fast Conformer:一种具有线性可扩展注意力的高效语音识别模型 一、引言 Conformer 模型因其结合了深度可分离卷积层和自注意力层的优势,在语音处理任务中取得了出色的性能表现。然而,Conformer 模型存在计算和内存消耗大的问题,…...
利用jQuery 实现多选标签下拉框,提升表单交互体验
在 Web 开发中,表单设计常常需要支持用户选择多个选项的场景。传统的多选框或下拉菜单在处理大量选项时,可能会影响界面美观和操作便捷性。这时,多选标签下拉框就成为了一种优雅的解决方案。本文将详细介绍如何通过 HTML、CSS 和 jQuery 实现…...
基于 HTML 和 CSS 实现的 3D 翻转卡片效果
一、引言 在网页设计中,为了增加用户的交互体验和视觉吸引力,常常会运用一些独特的效果。本文将详细介绍一个基于 HTML 和 CSS 实现的 3D 翻转卡片效果,通过对代码的剖析,让你了解如何创建一个具有立体感的卡片,在鼠标…...
【阿里云大模型高级工程师ACP学习笔记】2.9 大模型应用生产实践 (下篇)
特别说明:由于这一章节是2025年3月官方重点更新的部分,新增内容非常多,因此我不得不整理成上、下两篇,方便大家参考。 学习目标 备考阿里云大模型高级工程师ACP认证的这部分内容,旨在深入理解大模型应用在安全合规方面的要求,掌握模型部署相关要点,提升实际操作和应对复…...
MVC、MVP、MVVM三大架构区别
1、MVC架构 M(Model):主要处理数据的存储、获取、解析。 V(View):即Fragement、Activity、View等XML文件 C(Controller):主要功能为控制View层数据的显示,…...
期末代码Python
以下是 学生信息管理系统 的简化版代码示例(控制台版本,使用文件存储数据),包含核心功能: 1. 定义学生类 class Student: def __init__(self, sid, name, score): self.sid sid # 学号 self.name name # 姓名 self.s…...
ecat总线6000段定义
1ecat总线 不适合新手学习,我复习用的。 can和ecat是一家的,就跟C和C的关系。 参考CIA402定义 2 PDOr⬇️ 主站发送到终端伺服。 有4组,0x1600 3 PDOt⬆️ 伺服驱动器发送到主站。 我记得有4组,但这款伺服只有2组。 4 速度模…...
数据管理能力成熟度评估模型(DCMM)全面解析:标准深度剖析与实践创新
文章目录 一、DCMM模型的战略价值与理论基础1.1 DCMM的本质与战略定位1.2 DCMM的理论基础与创新点 二、DCMM模型的系统解构与逻辑分析2.1 八大能力域的有机关联与系统架构2.2 五级成熟度模型的内在逻辑与演进规律 三、DCMM八大能力域的深度解析与实践创新3.1 数据战略ÿ…...
Python精进系列:random.uniform 函数的用法详解
目录 🔍 一、引言📌 二、函数定义与参数说明✅ 函数定义⚙️ 参数说明 🧪 三、使用示例1️⃣ 生成单个随机数2️⃣ 生成多个随机数3️⃣ 生成二维坐标 🎯 四、应用场景🧪 模拟实验📊 数据采样🎮…...
观察者模式(Observer Pattern)
🧠 观察者模式(Observer Pattern) 观察者模式是一种行为型设计模式。它定义了一种一对多的依赖关系,使得当一个对象的状态发生变化时,所有依赖于它的对象都会得到通知并自动更新。通常用于事件驱动的编程场景中。 &am…...
【论文阅读】Joint Deep Modeling of Users and Items Using Reviews for Recommendation
Joint Deep Modeling of Users and Items Using Reviews for Recommendation 题目翻译:利用评论对用户和项目进行联合深度建模进行推荐 原文地址:点这里 关键词: DeepCoNN、推荐系统、卷积神经网络、评论建模、协同建模、评分预测、联合建模…...
webpack 的工作流程
Webpack 的工作流程可以分为以下几个核心步骤,我将结合代码示例详细说明每个阶段的工作原理: 1. 初始化配置 Webpack 首先会读取配置文件(默认 webpack.config.js),合并命令行参数和默认配置。 // webpack.config.js…...
Linux 常用指令详解
Linux 操作系统中有大量强大的命令行工具,下面我将分类介绍一些最常用的指令及其用法。 ## 文件与目录操作 ### 1. ls - 列出目录内容 ls [选项] [目录名] 常用选项: - -l:长格式显示(详细信息) - -a:显…...
DXFViewer进行中 : ->封装OpenGL -> 解析DXF直线
DXFViewer进行中,目标造一个dxf看图工具。. 目标1:封装OpenGL,实现正交相机及平移缩放功能 Application.h #pragma once #include <string> #include <glad/glad.h> #include <GLFW/glfw3.h> #include "../Core/TimeStamp.h" #includ…...
多序列比对软件MAFFT介绍
MAFFT(Multiple Alignment using Fast Fourier Transform)是一款广泛使用且高效的多序列比对软件,由日本京都大学的Katoh Kazutaka等人开发,最早发布于2002年,并持续迭代优化至今。 它支持从几十条到上万条核酸或蛋白质序列的快速比对,同时在准确率和计算效率之间提供灵…...
基于 HTML5 Canvas 实现图片旋转与下载功能
一、引言 在 Web 开发中,经常会遇到需要对图片进行处理并提供下载功能的需求。本文将深入剖析一段基于 HTML5 Canvas 的代码,该代码实现了图片的旋转(90 度和 180 度)以及旋转后图片的下载功能。通过对代码的解读,我们…...
学习路线(机器人系统)
机器人软件/系统学习路线(从初级到专家) 初级阶段(6-12个月)基础数学编程基础机器人基础概念推荐资源 中级阶段(1-2年)机器人运动学机器人动力学控制系统感知系统推荐资源 高级阶段(2-3年&#…...
基于EFISH-SCB-RK3576工控机/SAIL-RK3576核心板的网络安全防火墙技术方案(国产化替代J1900的全栈技术解析)
基于EFISH-SCB-RK3576/SAIL-RK3576的网络安全防火墙技术方案 (国产化替代J1900的全栈技术解析) 一、硬件架构设计 流量处理核心模块 多核异构架构: 四核Cortex-A72(2.3GHz):处理深度…...
基于 jQuery 实现复选框全选与选中项查询功能
在 Web 开发中,复选框是常见的交互元素,尤其是在涉及批量操作、数据筛选等场景时,全选功能和选中项查询功能显得尤为重要。本文将介绍如何使用 HTML、CSS 和 jQuery 实现一个具备全选、反选以及选中项查询功能的复选框组,帮助开发…...
Python中的JSON库,详细介绍与代码示例
目录 1. 前言 2. json 库基本概念 3. json 的适应场景 4. json 库的基本用法 4.1 导 json入 模块 4.2 将 Python 对象转换为 JSON 字符串 4.3 将 JSON 字符串转换为 Python 对象 4.4 将 Python 对象写入 JSON 文件 4.5 从 JSON 文件读取数据 4.6 json 的其他方法 5.…...
tensorflow 调试
tensorflow 调试 tf.config.experimental_run_functions_eagerly(True) 是 TensorFlow 中的一个配置函数,它的作用是: 让 tf.function 装饰的函数以 Eager 模式(即时执行)运行,而不是被编译成图(Graph&…...
iptables的基本选项及概念
目录 1.按保护范围划分: 2.iptables 的基础概念 4个规则表: 5个规则链: 3.iptables的基础选项 4.实验 1.按保护范围划分: 主机防火墙:服务范围为当前一台主机 input output 网络防火墙:服务范围为防…...
使用AI 将文本转成视频 工具 介绍
🎬 文字生成视频工具 一款为自媒体创作者设计的 全自动视频生成工具,输入文本即可输出高质量视频,大幅提升内容创作效率。视频演示:https://leeseean.github.io/Text2Video/?t23 ✨ 功能亮点 功能模块说明📝 智能分…...
Python生活手册-NumPy数组创建:从快递分拣到智能家居的数据容器
一、快递分拣系统(列表/元组转换) 1. 快递单号录入(np.array()) import numpy as np快递单号入库系统 快递单列表 ["SF123", "JD456", "EMS789"] 快递数组 np.array(快递单列表) print(f"…...