- 博客(21)
- 收藏
- 关注
原创 用 C 语言实现协程
协程与线程(进程)都是模拟多任务(routine)并发执行的软件实现。操作系统线程在一个 CPU 线程中模拟并发执行多个任务,而协程(coroutine)在一个操作系统线程中模拟并发执行多个任务。因此协程也被称为“用户态线程”、“轻量级线程”。之所以说“模拟并发执行”,是因为任务实际并没有同时运行,而是通过来回切换实现的线程切换由操作系统负责,而协程切换通常由程序员直接控制。程序员通过 resume/yield 操作控制协程切换。resume 操作唤醒一个指定协程;
2024-11-18 19:44:56
1436
原创 如何进行Java项目构建?
Ant的全称是Another Neat Tool,意为另一个好用的工具,是Java中比较常用的项目构建工具。构建过程包括编译、测试和部署等。和传统的Make工具相似,能为我们完成工程发布流程中一系列机械工作。并且具有良好的跨平台特性。使用XML来表述构建过程与依赖关系,用task替代shell,语义清晰,便于维护。具有强大的任务系统,便于扩展。其中,task以Java class的形式存在。echo: 输出信息mkdir: 创建文件夹exec: 执行shell命令。
2024-11-18 19:26:20
956
原创 如何使用AI生成长视频?
相比起其他视频生成产品就3、4秒的时长,Sora是碾压式的存在。但Sora没有对外开放,所以要生成长视频,暂时也没有其他完整的好的方案。综合各种资料来看,目前最可行的方案应该就是:写剧本/分镜——>生图——>生视频->视频拼接,本质上就是通过多个短时长的视频组成一个完整的长视频。通过以上方案,基本可以实现长视频的生成,但目前AI生成视频的崩坏率极高,可控性差,所以需要生成很多视频,从中选取最符合预期的。图生视频这一步,需要结合多种视频软件一起使用。视频拼接,可以使用剪映或者苹果电脑上的iMovie。
2024-11-18 19:22:09
4283
原创 一文梳理金融风控建模全流程(Python)
信贷风控是数据挖掘算法最成功的应用之一,这在于金融信贷行业的数据量很充足,需求场景清晰及丰富。信贷风控简单来说就是判断一个人借了钱后面(如下个月的还款日)会不会按期还钱。更专业来说,信贷风控是还款能力及还款意愿的综合考量,根据这预先的判断为信任依据进行放贷,以此大大提高了金融业务效率。与其他机器学习的工业场景不同,金融是极其厌恶风险的领域,其特殊性在于非常侧重模型的解释性及稳定性。业界通常的做法是基于挖掘多维度的特征建立一套可解释及效果稳定的规则及风控模型对每笔订单/用户/行为做出判断决策。
2024-11-18 19:13:23
1384
1
原创 神经网络学习到的是什么?
神经网络(深度学习)学习到的是什么?一个含糊的回答是,学习到的是数据的本质规律。但具体这本质规律究竟是什么呢?要回答这个问题,我们可以从神经网络的原理开始了解。
2024-11-18 19:07:17
562
原创 神经网络拟合能力的提升之路(Pyhton)
原理上讲,神经网络模型的训练过程其实就是拟合一个数据分布(x)可以映射到输出(y)的数学函数 f(x),而拟合效果的好坏取决于数据及模型。那对于如何提升拟合能力呢?我们首先从著名的单层神经网络为啥拟合不了XOR函数说起。
2024-11-18 19:05:31
546
原创 DNN泛化能力
以经典的决策树模型为例, 当树模型学习数据集的通用规律时:一种好的情况,假如树第一个分裂节点时,刚好就可以良好区分开不同标签的样本,深度很小,相应的各叶子上面的样本数是够的(即统计规律的数据量的依据也是比较多的),那这会得到的规律就更有可能泛化到其他数据。更宽的神经网络模型具有良好的泛化能力。这是因为,更宽的网络都有更多的子网络,对比小网络更有产生梯度相干的可能,从而有更好的泛化性。当不同样本的梯度在训练过程中对齐良好,即当它们相干时,梯度下降是稳定的,可以很快收敛,并且由此产生的模型可以有良好的泛化性。
2024-11-18 19:03:53
900
原创 一文搞定深度学习建模预测全流程
机器学习机器学习的核心是通过模型从数据中学习并利用经验去决策。进一步的,机器学习一般可以概括为:从数据出发,选择某种模型,通过优化算法更新模型的参数值,使任务的指标表现变好(学习目标),最终学习到“好”的模型,并运用模型对数据做预测以完成任务。数据、模型、学习目标、优化算法。深度学习深度学习是机器学习的一个分支,它是使用多个隐藏层神经网络模型,通过大量的向量计算,学习到数据内在规律的高阶表示特征,并利用这些特征决策的过程。keras简介。
2024-11-17 22:07:29
1786
原创 盘点那些必问的数据结构算法题之快速排序
快速排序也是基于分治模式,类似归并排序那样,不同的是快速排序划分最后不需要merge。划分:数组 A[p…r] 被划分为两个子数组 A[p…q-1] 和 A[q+1…r],使得 A[p…q-1] 中每个元素都小于等于 A[q],而 A[q+1…r] 每个元素都大于 A[q]。划分流程见下图。解决:通过递归调用快速排序,对子数组分别排序即可。合并:因为两个子数组都已经排好序了,且已经有大小关系了,不需要做任何操作。
2024-11-17 21:47:43
1018
原创 《JavaScript 权威指南》 4 - 表达式和运算符
JavaScript 中的运算符用于自述表达式、比较表达式、逻辑表达式、赋值表达式等。大多数运算符都是由标点符号表示的,比如:「+」和「= 」,另外的一些运算符则是由关键字表示的,比如:delete 和 instanceof。表4-1运算符操作AN类型++前/后增量R1lval→num--前/后增量R1lval→num求反R1num→num转换为数字R1num→num按位求反R1int→int!逻辑非R1bool→bodelete删除属性。
2024-11-17 21:30:36
1032
原创 《JavaScript 权威指南》3 - 类型、值和变量
JavaScript 中的数据类型分为两类:原始类型(primitive type)和对象类型(object type)。原始类型包括数字、字符串和布尔值JavaScript 中有两个特殊的原始值:null(空)和 undefined(未定义),它们不是数字、字符串或布尔值。它们通常代表了各自特殊类型的唯一的成员除此之外的就是对象了。对象是属性(property)的集合,每个属性都由「名/值对」(值可以是原始值或者对象)构成。
2024-11-17 21:29:06
726
原创 《JavaScript 权威指南》 2 - 词法结构
词法结构(Lexical Structure)是程序语言的一套基础性规则,用来描述如何使用这门语言来编写程序
2024-11-17 21:27:26
934
原创 JavaScript 的学习(第一章)
第一章 主要介绍 JavaScript 的大概情况、基本语法。之前没有 JavaScript 基础的看不懂也没关系,后续章节会有进一步的详细说明,根据个人的理解整理出来我认为重要的核心概念。
2024-11-17 21:21:58
861
原创 所谓的设计系统
永远是最上层的,它们关注的用户的外在、外观感受,它是感性的、多变的,没有唯一标准的。永远是最底层的,它关注事物内在的东西、自身属性,它是理性的、不变的,有迹可循的。这个组件,移动端通常叫做 DatePicker,这个词强调的是用户的动作(pick),在 PC 端通常叫做 Calendar,这个词强调的是组件本身的特征。当我们设计的组件库需要考虑到跨端情况的时候,我们的组件库应该有一套一致的 API、一致的命名规则。因为他们的思维也被设计系统带偏了。一味的追求设计上的形式化的一致,却忽略了工程上逻辑的一致。
2024-11-17 21:07:21
330
原创 2024全国高校计算机能力挑战赛【初赛java组】真题(编程)
古代有一位著名的密码学家,他常常通过回文的方式加密他的秘密信息。作为他的助手,你需要编写一个程序帮助他找到将字符串分割成回文子串的最少切割次数。传闻中,只有真正的探险家才能走到这棵树的最深处,找到埋藏已久的宝藏。作为森林中最勇敢的探险者,你的任务是找到从树的根部到最深处的那条神秘之路,并计算它的深度,以揭示树的最终秘密。输出要求: 输出一个整数,表示二叉树的最大深度,即从根节点到最远叶子节点的最长路径上的节点数。在勇者大陆上,传说中只有真正的勇者才能登上魔法塔的顶端,成功登上魔法塔将会获得无尽的力量。
2024-11-17 20:49:46
2344
4
原创 “一键解题,小猿口算神器:让数学练习与PK战无不利!“
🚀 小猿口算答题神器来袭! 🚀🚀 一键获取正确答案,轻松搞定每道题! 🚀我们的智能答题工具能够自动解析小猿口算的题目,并快速给出正确答案。无论是练习还是比赛,都能让你事半功倍!特点:一键获取答案:快速准确获取每道题的正确答案。高效省时:节省时间,提高答题效率。智能识别:自动解析题目,智能识别答案。快来体验吧!让答题变得更简单!#小猿口算 #答题神器 #自动化答题 #高效学习 #智能工具
2024-10-12 12:56:05
1145
原创 Java 开发,掌握常见 Bug 解决方法,让代码更加稳健!
Java 开发中常见的 Bug 包括但不限于空指针异常、数组越界异常、类加载异常、除零异常、类型转换异常、文件读写异常、并发修改异常、索引溢出异常、配置错误和内存泄漏。了解这些常见问题及其解决方法,可以帮助开发者更高效地编写健壮的 Java 应用程序。
2024-10-10 20:42:46
354
原创 让数据如气泡般浮动:一文读懂冒泡排序
冒泡排序,一种计算机科学中的基础排序算法,以其直观的操作和易于实现的特性,在教育领域和特定应用场景中占据着一席之地。本文将带你领略冒泡排序的魅力,探讨其如何通过重复遍历数组,比较并交换相邻元素,以达到数据序列升序或降序排列的目的。通过分析其简单直观的实现逻辑、原地排序的高效特性、以及在小规模或部分有序数据集上的良好表现,揭示了冒泡排序在算法教学、小型项目开发及实时数据处理中的实用价值。同时,本文还会提及优化策略,如通过设置标志位提前结束无须交换的循环,进一步提升算法效率。
2024-10-10 19:22:49
590
原创 探索高效查找的艺术:解锁二分查找的神奇力量
在当今数据驱动的世界里,有效地处理海量信息成为了一项至关重要的技能。本文深入探讨了一种经典的算法——二分查找,它以其卓越的时间效率成为了有序数据集中查找特定元素的理想选择。通过巧妙地将查找区间一分为二,二分查找能够在对数时间内定位目标值,极大地提升了搜索速度。无论是优化数据库查询,还是在工程问题中快速定位解空间,二分查找都展现了其不可或缺的价值。本文不仅详细讲解了二分查找的基本原理及其实现方法,还讨论了在实际应用中如何避免常见的陷阱,确保算法的正确性和性能。对于任何希望提升编程技巧的专业人士而言,掌握二分查
2024-10-10 17:14:39
1953
原创 加速字符串匹配!了解KMP算法,让你的搜索更高效(高效字符串匹配的秘密武器)
KMP算法(Knuth-Morris-Pratt算法)是一种革命性的字符串匹配技术,能够大幅提高搜索效率。通过巧妙预处理模式串,KMP算法避免了传统方法中的重复比较,实现了快速准确的匹配。无论是在大规模文本搜索、DNA序列分析还是代码高亮显示中,KMP算法都能展现出卓越的性能。本文将深入浅出地讲解KMP算法的核心原理、实现细节及实际应用,带你领略这一经典算法的魅力。#编程 #算法 #高效搜索
2024-10-10 16:37:57
1811
原创 稀疏矩阵——三元组(表示,转置)
三元组稀疏矩阵是一种用于表示稀疏数据结构的方法,特别是在图论、网络分析和科学计算等领域。它通常用于存储大规模的矩阵,其中大部分元素都是零,而只有少数非零元素(也称为“三元组”)占据了矩阵的主要部分。这种矩阵的每个元素由三个要素组成:行索引、列索引和对应的值。由于大多数位置是空的,所以相比于传统的二维数组,三元组稀疏矩阵占用的内存更少,提高了空间效率。在处理像社交网络这样的大型数据集时,三元组稀疏矩阵能够有效地存储边(节点之间的连接),同时减少了不必要的存储需求。
2024-10-09 23:58:14
3313
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅