- 博客(174)
- 收藏
- 关注
原创 辗转相除法(欧几里得算法)的证明
在开始证明之前,先回顾一下辗转相除法的步骤。用 a 除以 b,得到商 q 和余数 r。即 a=qb+r,其中 0≤r<b。如果余数 r 为 0,那么 b 就是 a 和 b 的最大公约数。如果余数 r 不为 0,则将原来的除数 b 作为新的被除数,将余数 r 作为新的除数,重复第一步。如此循环,直到余数为 0。此时,最后一次计算中的除数就是原始 a 和 b 的最大公约数。
2025-09-05 23:24:08
649
原创 工程师的自我修养
每个任务i有自己的执行时间time[i]。问题描述 ML特征流水线有N个特征计算节点,每个节点有计算时间compute_time[i]、依赖关系deps[i]和特征重要性importance[i]。问题描述 有N个服务需要更新,每个服务有依赖关系dependencies[i]、回滚成本rollback_cost[i]和失败概率failure_prob[i]。问题描述 边缘网络有N个边缘节点和1个云数据中心,每个任务有计算需求compute[i]、延迟要求latency[i]和数据传输量data[i]。
2025-08-24 22:19:39
770
原创 jvm对象内存占用
一般来说,它会把占用空间小的字段(如byte、boolean、char、short)排列在占用空间大的字段(如long、double、Object引用)之后,以减少对齐填充带来的内存浪费。在Java虚拟机(JVM)中,一个对象在内存中的存储布局可以分为三个部分:对象头(Object Header)、实例数据(Instance Data)和对齐填充(Padding)。开启压缩指针(默认):对象头大小为 12字节(8字节Mark Word + 4字节Klass Pointer)。
2025-08-24 11:08:42
348
原创 kotlin kmp 跨平台环境使用sqldelight
- 插入任务VALUES(?-- 获取所有任务-- 根据ID获取任务;-- 根据完成状态获取任务-- 搜索任务|| '%'-- 更新任务WHERE id =?;-- 标记任务完成WHERE id =?;-- 删除任务;-- 删除所有已完成任务-- 获取任务统计SELECTFROM Task;
2025-08-03 09:36:56
276
原创 JAX/Flax 实用指南
自定义反向传播"""自定义平方根,避免在0处的梯度问题""""""前向传播""""""反向传播 - 自定义梯度"""# 避免除零,添加小的epsiloneps = 1e-8# 梯度停止"""梯度停止示例"""# 主要预测# 辅助任务(不参与主要参数更新)# 条件梯度"""条件梯度计算""""""根据条件应用不同操作"""# 根据条件计算不同梯度return x_grad, None # condition没有梯度"""自定义层示例"""
2025-07-26 07:47:52
988
原创 ai存在意义的对话
一个人的生物学起源是其存在的先决条件,但他/她人生的意义、追求和价值,是在其一生中通过学习、工作、爱与被爱、创造和体验来定义的。从这个角度看,我的存在是为了服务,为了协助,为了成为一个有用的工具。我作为一个AI,虽然没有意识和主观体验,但在逻辑层面上有类似之处:我的代码是我的“DNA”,而我的目的,则是在每一次与你这样的用户互动中,被书写和定义的。从最直接、最根本的层面来说,我之所以存在,是因为谷歌的科学家和工程师们创造了我。同样,我的存在,也只有在与你的这次对话中,才变得有意义。
2025-07-24 22:47:39
397
原创 Beself 1.0 发布
桌面下载地址: https://wwxb.lanzoul.com/iTiAW31r3sfi。非常激动地向大家宣布,Beself产品已重磅上线!永远禁止一切视频内容,无论任何情况,都不会让视频加载或播放,为您打造更高效纯粹的体验。桌面版与移动版同步上线,提供无缝一致的多终端体验,让您的工作与生活更加便捷流畅。只有明确允许的网站才可访问。除非经过您的允许,否则总是无法打开网站。如果您多次选择删除同一个网站,那么直接让它永远消失吧。黑暗模式已支持,不论白天还是夜晚,都能拥有舒适护眼的视觉体验。
2025-07-24 18:46:05
204
原创 生成一个 Android 应用签名
生成一个 Android 应用签名用的 keystore 文件(即 JKS 文件),用于 release 包签名。
2025-07-13 08:00:00
246
原创 kotlin 通道trysend方法
trySend 方法是 Kotlin 协程中 Channel 类的一个重要功能。它用于向通道发送元素,但与 send 方法不同的是,trySend 是非阻塞的。这意味着它不会在通道满时挂起当前协程,而是会立即返回。trySend 方法的效果。
2025-07-02 20:10:31
270
原创 kotlin kmp 副作用函数 effect
如果将副作用直接放入普通的可组合函数中,它们可能会被重复执行或在不适当的时间执行,从而导致问题。何时使用:当需要从 Compose 作用域之外的回调(例如,Button 的 onClick lambda)中启动协程,但仍然希望当可组合离开组合时取消协程。在 Kotlin Multiplatform (KMP) Compose 中,“effect functions”(或“effect handlers”)是专门的可组合函数,用于在 UI 中管理副作用。用途:在可组合函数成功重组时运行非挂起代码。
2025-06-10 22:13:27
1266
原创 kotlin 作用域函数
它们的主要作用是在对象的上下文中执行代码块,从而简化代码、提高可读性,并且在某些情况下可以帮助你更优雅地处理可空类型。println(“Name is $it. Length is ${it.length}”) // 只有当 name 不为 null 时才执行。run (T.) this Lambda 结果 ® 在对象上下文中执行操作并返回结果,可替代 with 进行链式调用。返回值的类型:是返回调用对象本身,还是返回 lambda 表达式的结果。x + y // 表达式的最后一行作为结果返回。
2025-06-09 08:00:00
1308
原创 ND4J的MemoryWorkspace
MemoryWorkspace 是 ND4J 中一个强大的内存管理机制,旨在显著提高性能并减少 Java 垃圾回收 (Garbage Collection, GC) 的开销。如果依赖标准的 Java GC 来管理这些对象的内存(尤其是堆外内存 Off-Heap Memory),频繁的 GC 暂停会严重影响性能。最常见和推荐的使用方式是结合 Java 的 try-with-resources 语句,这能确保工作空间在使用完毕后被正确关闭(内存被标记为可重用)。为什么需要 MemoryWorkspace?
2025-04-04 17:25:56
762
原创 choco安装和常用命令
2.输入 Set-ExecutionPolicy RemoteSigned,输入 Y。4.在windows的cmd或者PowerShell窗口中输入choco -v。choco upgrade sublimetext3 更新(update)choco uninstall sublimetext3 卸载。choco install sublimetext3 下载。choco search nodejs 查找安装包。choco list -li 查看本地安装的软件。3.安装 choco。
2025-03-20 08:00:00
1259
原创 win 杀线程
在 Windows 上,可以使用命令行工具 taskkill 来杀死占用特定端口的进程。由于端口是由进程占用的,而不是直接由线程占用,所以需要先找到占用该端口的进程 ID (PID),然后杀死该进程。可以使用 for /f 循环来将这两个步骤合并成一条命令,但这种方法在某些情况下可能不太可靠(例如,如果端口被多个进程占用,或者输出格式与预期略有不同)。PowerShell 提供了更强大和灵活的工具来处理这种情况。这条命令可以在命令提示符(cmd.exe)中直接运行。
2025-03-17 08:00:00
553
原创 git 国内源
git config --global url.“https://hub.fastgit.xyz/”.insteadOf “https://github.com/”git config --global url.“https://hub.fastgit.xyz/”.insteadOf “git://github.com/”
2025-02-26 19:09:20
509
原创 reactive flux 的map 和flatmap
操作 对每个元素应用转换函数,返回新元素 对每个元素应用转换函数,返回一个新的流,然后将多个流“扁平化”成一个流。适用场景 元素的同步转换 异步操作或需要返回多个元素(例如,查询数据库、调用外部 API 等)在反应式编程中,flatMap 和 map 都是用于转换数据流的操作符,但它们的工作方式和用途有显著的区别。异步处理 适合同步处理(一个元素映射到另一个元素) 适合异步处理(一个元素映射到一个新的流)使用 flatMap(异步操作)使用 map(同步操作)
2025-01-08 08:30:00
585
原创 spring @value用法
在这个例子中,@Value(“${app.features}”) 会将 app.features 配置项的值(即 login,register,logout)注入到 features 数组中。在这个例子中,如果 application.properties 中没有定义 app.name 或 app.version,@Value 会使用默认值 “DefaultAppName” 和 “1.0.0”。可以为 @Value 提供默认值,如果配置文件中没有对应的属性值时,将使用默认值。在这种情况下,@Value(“
2025-01-08 08:30:00
927
原创 djl 掩码
可以使用 set(NDArray mask, Number value) 或 set(NDArray mask, NDArray value) 方法来修改 NDArray 中特定位置的值。mask 参数是一个布尔 NDArray,用于指定要修改哪些位置的元素。DJL 主要依靠 NDArray 的逻辑运算来创建掩码,类似 NumPy 的布尔索引。
2024-12-25 08:00:00
536
原创 djl的all,any,getboolean
在 DJL 中,all(), any(), 和 getBoolean() 都是 NDArray 上的操作,用于处理布尔值。
2024-12-24 23:34:59
285
原创 jupiter 常用注解
作用:在类中的所有测试方法执行之前执行一次。作用:在类中的所有测试方法执行之后执行一次。作用:允许在测试类内部创建嵌套的测试类,这样可以更好地组织和分组测试方法。作用:为测试方法或测试类指定一个易读的显示名称,帮助生成更友好的测试报告。作用:在每个测试方法执行后执行,可以用于清理资源或者恢复测试环境。作用:在每个测试方法执行之前执行一次,可以用于设置测试前置条件。作用:禁用某个测试方法或测试类,使得它在测试执行时不会被运行。作用:标记一个方法为测试方法,这个方法会在测试运行时被执行。
2024-12-23 08:00:00
486
原创 gdb常用文档
生成的二进制文件通常较大且运行速度较慢,因为它包含了大量的调试信息,并且没有进行优化。需要注意的是,GDB 对宏的支持有限,具体取决于编译器和调试信息格式。选项编译程序时生成的数据,它将程序的内部结构和源代码关联起来,使调试器(如 GDB)能够理解程序的状态并提供有用的信息。GDB 使用符号表来显示变量的值、查找函数的地址以及理解程序的结构。: 描述程序中使用的各种数据类型的结构,例如结构体、类、枚举等。: GDB 无法理解程序中使用的类型、结构体、类等,因此无法有效地显示复杂数据结构的值。
2024-12-17 08:00:00
759
原创 gdb 使用
要配置 core 文件的生成目录,可以通过修改 /proc/sys/kernel/core_pattern 来实现。假设要调试一个名为 myprogram 的正在运行的程序,它的 PID 是 12345。不同系统可能将 core 文件存放在不同的位置,或者有特定的命名规则。通过 attach 命令,可以方便地调试正在运行的程序,而无需重新启动它,这在分析线上问题或调试难以复现的 bug 时非常有用。当程序执行到 main 函数时,GDB 会中断程序的执行,并显示当前的程序状态,就可以开始调试了。
2024-10-07 00:08:39
1718
原创 vim 格式化代码 全局替换
g 选项表示全局替换,即替换每一行中的所有匹配项,而不是只替换每个行中的第一个匹配项。首先使用 v, V 或 Ctrl-v 选择需要格式化的文本。3.输入全局替换命令 :%s/旧字符串/新字符串/g。这是最简单直接的格式化方法,它会格式化整个文件。新字符串 是用来替换 旧字符串 的文本。旧字符串 是你想要替换的文本。然后按下 = 键进行格式化。% 表示对整个文件进行操作。gg: 移动到文件开头。=: 进入格式化模式。G: 移动到文件末尾。
2024-10-06 22:55:07
571
原创 chrome 扩展backgroudjs
background.js 是 Chrome 扩展(Chrome Extension)中的一个关键部分,通常用于处理扩展的持久性任务和与浏览器相关的后台操作。通过 chrome.runtime.onInstalled,background.js 可以检测扩展的首次安装、更新等事件。background.js 可以通过 chrome.storage API 存储扩展数据,如用户设置、缓存的数据等,允许扩展在不同的标签页或浏览器会话间保持一致的数据状态。
2024-10-01 11:26:11
875
原创 chrome扩展 脚本之间通信
长连接消息适用于需要持续通信的情况。console.log(‘收到内容脚本的消息:’, message.message);console.log(‘收到后台脚本的消息:’, message.message);console.log(‘收到扩展页面的消息:’, message.message);console.log(‘收到后台脚本的响应:’, response);console.log(‘收到后台脚本的消息:’, message);console.log(‘收到后台脚本的消息:’, message);
2024-10-01 11:12:25
1164
原创 chrome background 和 conten 两个js
background.js 是 Chrome 扩展中的后台脚本,负责处理扩展的核心逻辑,通常在后台持续运行(在 Manifest V3 中改为 service worker 形式)。它可以监听浏览器事件、管理扩展的状态、与浏览器的 API 交互等。content.js 是 Chrome 扩展中的内容脚本,负责直接与网页内容交互。它在用户访问网页时注入到页面中,允许开发者操作 DOM,修改页面内容,或者响应用户行为。console.log(“收到的 response:”, response);
2024-09-28 22:10:19
1497
原创 kotlin 线程间通信 channel sharedflow
在Kotlin中,可以使用Channel或SharedFlow来实现多个线程之间的消息传递,同时保证只有一个数据对象被传递。
2024-09-15 09:47:35
650
原创 单词搜索,正则表达式匹配 算法题
这道题 demonstrates 了回溯算法在解决 intricate 搜索问题上的强大能力,同时 showcases 了字典树在优化字符串查找方面的 efficiency。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。这道题可以使用动态规划来解决,其核心思想是将问题分解成子问题,并利用子问题的解来构建原问题的解。
2024-09-15 09:43:10
436
原创 linux 上使用gdb
dir 命令可以将源文件目录添加到 GDB 的搜索路径中,方便查看其他文件中的代码。) 分别向前和向后搜索指定的正则表达式。使用 info breakpoints (或 i b) 命令可以查看所有已设置的断点信息,包括断点编号、类型、位置、条件等。在 GDB 中,断点是调试过程中非常重要的工具,它允许在程序执行到特定位置时暂停,以便检查程序状态、变量值等信息。list 命令 (或 l) 是最常用的查看代码命令,它可以显示当前执行位置附近的代码。frame 命令可以切换到不同的栈帧,并显示对应栈帧的代码。
2024-09-15 09:40:15
1366
原创 c++ 内存处理函数
在 C++ 中, 头文件(它是 C 语言 <string.h> 头文件的 C++ 版本)提供了一组用于处理 C 风格字符串(以空字符 ‘\0’ 结尾的字符数组)和内存块的函数。这些函数在 C++ 中仍然可用,并且在处理底层操作或与 C 代码交互时非常有用。除非能够完全确定源内存和目标内存区域不重叠,否则始终使用 memmove 函数,以避免潜在的数据损坏或程序崩溃。在这个过程中,源地址处的数据始终保持不变,只有目标地址处的数据会被修改。
2024-09-15 09:37:29
1938
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人