Arts打卡第8周

博客介绍了技术学习的几个方面,包括每周做Leetcode算法题进行编程训练,阅读并点评英文技术文章提升英文水平,总结日常工作中的技术技巧,分享有观点的技术文章。还提及了算法参考文章、英文源码阅读、工作中MyBatis框架问题及计算机思维文章分享。
  • Algorithm。主要是为了编程训练和学习。 每周至少做一个 leetcode 的算法题(先从Easy开始,然后再Medium,最后才Hard)。 进行编程训练,如果不训练你看再多的算法书,你依然不会做算法题,看完书后,你需要训练。 关于做Leetcode的的优势,你可以看一下我在coolshell上的文章 Leetcode 编程训练 - 酷 壳 - CoolShell。

  • Review:主要是为了学习英文,如果你的英文不行,你基本上无缘技术高手。 所以,需要你阅读并点评至少一篇英文技术文章, 我最喜欢去的地方是http://Medium.com(需要梯子) 以及各个公司的技术blog,如Netflix的。

  • Tip:主要是为了总结和归纳你在是常工作中所遇到的知识点。 学习至少一个技术技巧。你在工作中遇到的问题,踩过的坑,学习的点滴知识。

  • Share:主要是为了建立你的影响力,能够输出价值观。 分享一篇有观点和思考的技术文章。

Algorithm :有效数度:

  参考博友的文章:原文链接:https://blog.youkuaiyun.com/weixin_38823568/article/details/81202020

class Solution {
    public boolean isValidSudoku(char[][] board) {
        
        for (int i = 0; i < 9; i++){
            HashSet<Character> row = new HashSet<>();
        HashSet<Character> line = new HashSet<>();
        HashSet<Character> cube = new HashSet<>();
            for (int j = 0; j < 9; j++){
                if ('.' != board[i][j] && !row.add(board[i][j])){
                    return false;
                }
                if ('.' != board[j][i] && !line.add(board[j][i])){
                    return false;
                }
                int m = i / 3 * 3 + j / 3;
                int n = i % 3 * 3 + j % 3 ;
                if ('.' != board[m][n] && !cube.add(board[m][n])){
                    return false;
                }
            }
            
        }
        return true;
        // 参考文章:https://blog.youkuaiyun.com/weixin_38823568/article/details/81202020
        // https://blog.youkuaiyun.com/qq_38200548/article/details/80865681
        
    }

Review:看了一点BigDecimal 的源码

      divisor  除数  remainder 余数

    BigDecimal在处理数的时候,新建了一个数字在填充每long上面的每一位

Tip : 在工作中发现,使用的是mybatis框架,手动写的sql用自定义的实体类接受。发现返回的实体类,不会走自定义类中的get方法。(因为我自己,自定义的类中的get方法做了非null判断,而sql 返回的实体类,不会走非null  判断。)

   并且,sql返回的实体类,还能躲过 java代码中 equals(BigDecimal.Zero)的判断。

   这个问题,还在进一,查询之中。希望,有经验的大神不吝赐教。

Share :王维纲老是关于计算机思维的文章:欢迎大家积极订阅万老师的专栏。得到内容很不错,欢迎订阅(不好意思水文了)

书名:《计算机思维》(Computational Thinking)
作者:两位计算机科学家——美国的彼得·丹宁(Peter J. Denning)和芬兰的马蒂·泰德(Matti Tedre)。
出版日期:2019年4月
一、理解算法
1.“算法(algorithm)”这个词,早在十七世纪就有了。把整个计算给流程化,变成标准操作,而且还得能让好几个计算师一起算,这就要求这个计算方法满足三个条件 ——
第一,计算过程必须被拆解成很多步骤,每一步干什么必须是简单而明确的。
第二,所有这些步骤要能拆分开来,分给几个计算师,各自负责其中的一部分。而这就有个交流问题,各个计算师算出来的东西得汇总在一起,形成一个最终的结果。
第三,纠错机制,让计算师们能觉察到自己哪里算错了。
按今天的概念,这其实就是“分布式并行计算”。这不但是计算机方法,而且还是超级计算机的方法。
2.所以我们可不是先有了计算机之后才有的计算机思维。人们早就有了计算机思维,只不过当时没有机器可用、只能用人。
3.能提出算法,和自己会算,完全是两码事。算法最大的好处就是它是机械化的操作。算法化就是标准化和流程化。这其实就是整个机械化大生产的秘密。
4.计算机思维的第一原则:把人的情感和主观判断排除在计算过程之外。
5.哲学家的思想总是领先于技术实现,而老百姓的思想则被技术所左右。每个时代的技术,都会主导这个时代的人的思维。老一辈的人爱说“压力很大”、“动力十足”、“把压力化为动力”,这其实是一种暗喻 —— 是把人给当成了蒸汽时代的机车。而今天的年轻人则善于用计算机做暗喻,会说……“我的大脑死机了”。
二、理解硬件
1.从提花织机的打孔卡提供了“严格的灵活性”,到巴贝奇的可编程通用计算机,到冯·诺依曼架构的CPU和内存,这是非常清晰的演变。现在我们看到了,图灵再厉害,“编程”这个思想不是他先提出的;冯·诺依曼再神,计算机系统不是他发明的。
2.为什么说信息行业是个创新行业呢?因为第一,这里面的想法太密集,有太多可以改进之处;第二,改进的方向相当明确。
3.从计算机思维的角度来说,核心教训是你必须考虑硬件。永远都别忘了计算机是个机器,而机器有数学算法之外的、自己的特点和脾气。
三、理解学科
计算机科学的发展可以分为三个方面 ——
1.初级,是怎么更好地实现自动化,主要解决应用问题;
汇编语言-高级汇编语言-账号管理-操作系统-系统思维-工程思维-网络思维-安全思维-编程思想-程序员思维-编程技能
2.中级,是研究“计算”这件事儿本身,上升到了类似于自然科学的层面;
计算机科学真正成熟的标志,是“计算机”这个东西,和“计算”这个行为本身,成了研究的对象。就好像动物学研究动物、植物学研究植物一样,计算机科学,研究计算机。计算机问题本质上是数学问题。现在有很多应用数学家就在专门研究这些问题。
3.高级,则是把计算思维用到其他科学领域中去,是带给人认知的升级。
人们突然意识到,“计算”是个非常基础的逻辑,到处都是计算。它还给我们提供了一个非常不一样的观察世界的眼光。
四、理解软件
1.软件工程,可以说是工程管理和综合治理手段的极限。它告诉我们如何治理最复杂的系统。
2.工程师思维和科学家思维至少有三个重大区别——
第一,科学家是寻找事物的规律,而工程师是去设计一个东西。科学家只要觉得这个规律有意思就可以发表,而工程师得负责任。
第二是对知识的态度。科学家面对知识,看懂了、能总结出规律就行。而工程师要把这个知识拿来用。
第三是对模型的使用。科学家喜欢简化的模型,能抓住实质就行。而工程师必须考虑所有的细节。
所以软件不但是个工程,而且比传统工程难得多。
3.软件工程项目的复杂性问题:
1个人干12个月的活,绝对不是12个人在1个月内能干完的。项目用的程序员越多,平均每个人出活的速度就越慢。所以你规划项目的时候不要算什么“人月”。
你这个团队做出来的软件的结构,往往和你这个团队的人员组织管理结构高度相似。所以软件工程不但要管项目,还要管人。
4.现代软件工程要求,软件产品必须达到下面这五个目标,称之为“DRUSS” ——
Dependable,可信赖,让顾客真能指望上你这个软件;
Reliable,得可靠,不能总出毛病;
Usable,软件是给人用的,得让人能够上手;
Safe,用的时候不能出安全事故;
Secure,它得不容易被黑客攻击才行。
5.软件工程的根本问题,是人的问题。主导软件开发的这个人,必须得能够理解高度复杂的东西才行。你得能驾驭复杂。
6.“好的判断来自经验,而经验来自坏的判断。”软件每天都在更新,但软件工程的背后,是一棵经年累月长出来的大树。
五、理解设计
1.发布,是尽最大努力,呈现一个最好的东西的行动。发布能刺激我们完善自我。
2.软件设计是一个激进的思维方式转换。以前的软件工程思维,是关注于功能和实现;现在的设计思维,则要求我们要考虑到用户和产品应用的环境。软件设计和一般产品的设计还不一样。一般产品让你感觉好用、好看比较容易,可能最多考虑一些人体工程学之类。而软件,跟用户是交互式的关系。用户会在软件中做出各种行为,软件是让用户活动的地方。
3.软件设计的目标,是创造一个虚拟世界。
4.软件设计,可以分为六个等级。
 -1 级,是流氓软件。这种软件不但不安全而且很可能专门留了收集信息甚至攻击系统的后门,而且完成度很低,一堆bug。
 0 级,是轻蔑的满意。基本上可以用,但是大家都知道其中有很多问题,也不怎么安全。
 1 级,是软件能够满足基本的需求,比较可靠。
 2 级,软件能跟环境和用户使用习惯达到了完美配合。你不需要学习它怎么用,凭直觉就可以直接使用。该有的功能它都有,而且非常可靠。
 3 级,是软件能主动规避负面的结果。这就要求设计者不但要满足用户正常的需求,还得事先把各种怪异的用法、极端的情况都考虑到,确保软件在任何情况下都没有故障。
 4 级,也就是最高级,是这个软件能给用户带来喜悦。这意味着软件超出了用户的预期,让人用上之后会迫不及待地想要把它推荐给别人。
5.软件设计是技术、数学、艺术、文化和哲学的融合创造。软件设计里面有“道”。
六、理解模拟
1.“理论”和“实验”,都是人的思想和真实世界之间互相印证。但是有了超级计算机之后,就出现了一个新的研究模式,也就是“计算”。是用计算机*模拟*一个系统的演化。
2.“计算思维”带给科学研究的认知升级:传统的因果、理论、学说,无法描述真正复杂的现象。计算不能让你得到什么一句话解释,但是计算能让你更接近真实情况。

 

转载于:https://www.cnblogs.com/prader6/p/10928862.html

标题SpringBoot智能在线预约挂号系统研究AI更换标题第1章引言介绍智能在线预约挂号系统的研究背景、意义、国内外研究现状及论文创新点。1.1研究背景与意义阐述智能在线预约挂号系统对提升医疗服务效率的重要性。1.2国内外研究现状分析国内外智能在线预约挂号系统的研究与应用情况。1.3研究方法及创新点概述本文采用的技术路线、研究方法及主要创新点。第2章相关理论总结智能在线预约挂号系统相关理论,包括系统架构、开发技术等。2.1系统架构设计理论介绍系统架构设计的基本原则和常用方法。2.2SpringBoot开发框架理论阐述SpringBoot框架的特点、优势及其在系统开发中的应用。2.3数据库设计与管理理论介绍数据库设计原则、数据模型及数据库管理系统。2.4网络安全与数据保护理论讨论网络安全威胁、数据保护技术及其在系统中的应用。第3章SpringBoot智能在线预约挂号系统设计详细介绍系统的设计方案,包括功能模块划分、数据库设计等。3.1系统功能模块设计划分系统功能模块,如用户管理、挂号管理、医生排班等。3.2数据库设计与实现设计数据库表结构,确定字段类型、主键及外键关系。3.3用户界面设计设计用户友好的界面,提升用户体验。3.4系统安全设计阐述系统安全策略,包括用户认证、数据加密等。第4章系统实现与测试介绍系统的实现过程,包括编码、测试及优化等。4.1系统编码实现采用SpringBoot框架进行系统编码实现。4.2系统测试方法介绍系统测试的方法、步骤及测试用例设计。4.3系统性能测试与分析对系统进行性能测试,分析测试结果并提出优化建议。4.4系统优化与改进根据测试结果对系统进行优化和改进,提升系统性能。第5章研究结果呈现系统实现后的效果,包括功能实现、性能提升等。5.1系统功能实现效果展示系统各功能模块的实现效果,如挂号成功界面等。5.2系统性能提升效果对比优化前后的系统性能
在金融行业中,对信用风险的判断是核心环节之一,其结果对机构的信贷政策和风险控制策略有直接影响。本文将围绕如何借助机器学习方法,尤其是Sklearn工具包,建立用于判断信用状况的预测系统。文中将涵盖逻辑回归、支持向量机等常见方法,并通过实际操作流程进行说明。 一、机器学习基本概念 机器学习属于人工智能的子领域,其基本理念是通过数据自动学习规律,而非依赖人工设定规则。在信贷分析中,该技术可用于挖掘历史数据中的潜在规律,进而对未来的信用表现进行预测。 二、Sklearn工具包概述 Sklearn(Scikit-learn)是Python语言中广泛使用的机器学习模块,提供多种数据处理和建模功能。它简化了数据清洗、特征提取、模型构建、验证与优化等流程,是数据科学项目中的常用工具。 三、逻辑回归模型 逻辑回归是一种常用于分类任务的线性模型,特别适用于二类问题。在信用评估中,该模型可用于判断借款人是否可能违约。其通过逻辑函数将输出映射为0到1之间的概率值,从而表示违约的可能性。 四、支持向量机模型 支持向量机是一种用于监督学习的算法,适用于数据维度高、样本量小的情况。在信用分析中,该方法能够通过寻找最佳分割面,区分违约与非违约客户。通过选用不同核函数,可应对复杂的非线性关系,提升预测精度。 五、数据预处理步骤 在建模前,需对原始数据进行清理与转换,包括处理缺失值、识别异常点、标准化数值、筛选有效特征等。对于信用评分,常见的输入变量包括收入水平、负债比例、信用历史记录、职业稳定性等。预处理有助于减少噪声干扰,增强模型的适应性。 六、模型构建与验证 借助Sklearn,可以将数据集划分为训练集和测试集,并通过交叉验证调整参数以提升模型性能。常用评估指标包括准确率、召回率、F1值以及AUC-ROC曲线。在处理不平衡数据时,更应关注模型的召回率与特异性。 七、集成学习方法 为提升模型预测能力,可采用集成策略,如结合多个模型的预测结果。这有助于降低单一模型的偏差与方差,增强整体预测的稳定性与准确性。 综上,基于机器学习的信用评估系统可通过Sklearn中的多种算法,结合合理的数据处理与模型优化,实现对借款人信用状况的精准判断。在实际应用中,需持续调整模型以适应市场变化,保障预测结果的长期有效性。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值