第1节课:算法初印象—开启算法世界的大门
目录
- 一、算法是什么
- (一)官方定义
- (二)算法的五大特性
- (三)算法与程序的关系
- 二、算法在生活中的奇妙体现
- (一)日常出行中的算法
- (二)购物消费中的算法
- (三)社交娱乐中的算法
- (四)金融领域中的算法
- (五)医疗健康中的算法
- 三、总结
在当今数字化时代,算法无处不在,它犹如幕后的魔法师,驱动着各种智能设备和应用程序的运行。对于许多人来说,算法可能是一个既熟悉又陌生的概念。熟悉是因为我们每天都在与算法打交道,陌生则是因为对其背后的原理和机制知之甚少。今天,就让我们一同走进算法的世界,揭开它神秘的面纱。
一、算法是什么
(一)官方定义
从学术角度来讲,算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。简单来说,算法就是解决问题的一系列清晰步骤。例如,当我们要计算两个数的和时,先输入这两个数,然后将它们相加,最后输出结果,这一系列操作就是一个简单的算法。
(二)算法的五大特性
-
有穷性:算法必须在执行有限个步骤之后结束。如果一个算法陷入无限循环,永远无法停止,那么它就不符合算法的定义。例如,一个简单的循环计算 1 到 100 的和的算法,在完成 100 次加法运算后就会结束,这体现了有穷性。
-
确定性:算法的每一步骤都必须有明确的定义,不能产生歧义。以计算圆的面积为例,我们使用公式 S = πr²,其中 π 是一个确定的常数,r 是圆的半径,每一个符号和操作都有明确的含义,不会出现模糊不清的情况。
-
输入:一个算法有零个或多个输入,这些输入是算法开始执行前需要给定的初始数据。比如在一个求平均值的算法中,我们需要输入参与计算的一组数据,这些数据就是算法的输入。
-
输出:算法必须有一个或多个输出,这些输出是算法执行完毕后产生的结果。继续以上述求平均值的算法为例,计算得到的平均值就是该算法的输出。
-
可行性:算法中的所有操作都可以通过已经实现的基本操作在有限次内完成。例如,在计算机中,我们可以通过基本的算术运算(加、减、乘、除)和逻辑运算(与、或、非)来实现复杂的算法。
(三)算法与程序的关系
算法和程序是紧密相关但又有所不同的概念。算法是解决问题的抽象描述,而程序则是用某种编程语言实现的算法。可以说,算法是程序的灵魂,程序是算法的具体实现。例如,我们用 Python 语言编写一个计算阶乘的程序,其中实现阶乘计算的逻辑就是算法,而用 Python 代码将这个逻辑表达出来的过程就是编写程序。
二、算法在生活中的奇妙体现
(一)日常出行中的算法
-
导航算法:当我们使用手机导航软件规划出行路线时,背后就运用了复杂的算法。导航软件会根据我们输入的起点和终点,结合实时路况信息,通过算法计算出最优路线。常见的导航算法有 Dijkstra 算法和 A * 算法,它们能够在地图的道路网络中找到最短路径或者最快路径,帮助我们高效地到达目的地。
-
公交换乘算法:对于乘坐公共交通出行的人来说,公交换乘算法非常实用。该算法会考虑公交线路、站点、发车时间等因素,为乘客规划出最佳的换乘方案,使得换乘次数最少、总行程时间最短或者总费用最低。
(二)购物消费中的算法
-
推荐算法:在电商平台购物时,我们经常会看到平台为我们推荐的商品。这些推荐背后是基于用户的浏览历史、购买记录、搜索关键词等数据,运用推荐算法实现的。常见的推荐算法有协同过滤算法和基于内容的推荐算法。协同过滤算法通过分析用户之间的相似性,为目标用户推荐其他相似用户喜欢的商品;基于内容的推荐算法则是根据商品的属性和用户的兴趣偏好,为用户推荐与之匹配的商品。
-
价格优化算法:商家在制定商品价格时,也会运用算法进行优化。通过分析市场需求、成本、竞争对手价格等因素,使用定价算法来确定最优的价格策略,以实现利润最大化。例如,动态定价算法会根据不同的时间段、市场需求和库存情况实时调整商品价格。
(三)社交娱乐中的算法
-
好友推荐算法:在社交平台上,我们会收到平台推荐的可能认识的人。这是基于我们的好友关系、共同兴趣爱好、地理位置等信息,通过好友推荐算法实现的。这些算法能够挖掘用户之间潜在的联系,帮助我们拓展社交圈子。
-
音乐和视频推荐算法:当我们使用音乐或视频平台时,平台会根据我们的听歌或观看历史,运用推荐算法为我们推荐个性化的音乐和视频内容。例如,网易云音乐的每日推荐歌单就是通过算法分析用户的音乐偏好,为用户推荐符合口味的新歌和歌单。
(四)金融领域中的算法
-
风险评估算法:银行在审批贷款时,会使用风险评估算法来评估借款人的信用风险。该算法会综合考虑借款人的收入、负债、信用记录、年龄等因素,通过建立数学模型来预测借款人违约的可能性,从而决定是否批准贷款以及贷款额度和利率。
-
投资组合优化算法:投资者在进行投资时,需要构建合理的投资组合以降低风险并实现收益最大化。投资组合优化算法可以根据不同资产的预期收益率、风险水平和相关性等因素,运用数学模型计算出最优的投资组合比例。例如,马科维茨的现代投资组合理论就是一种经典的投资组合优化算法。
(五)医疗健康中的算法
-
疾病诊断辅助算法:随着人工智能技术的发展,算法在医疗领域的应用越来越广泛。疾病诊断辅助算法可以通过分析患者的症状、病史、检查结果等数据,辅助医生进行疾病诊断。例如,一些基于深度学习的算法能够对医学影像(如 X 光、CT、MRI 等)进行分析,帮助医生检测疾病和发现潜在的健康问题。
-
药物研发算法:在药物研发过程中,算法可以用于筛选潜在的药物分子、预测药物的疗效和副作用。通过计算机模拟和算法分析,可以大大缩短药物研发周期,降低研发成本。
三、总结
通过以上对算法概念和生活应用的介绍,我们可以看到算法不仅是计算机科学的核心,更是渗透到了我们生活的方方面面。它为我们提供了便捷的服务,优化了我们的决策过程,推动了各个领域的发展。
在后续的学习中,我们将深入探讨各种具体的算法,了解它们的原理、实现方法和应用场景,进一步领略算法的魅力。
相信随着对算法的深入学习,我们将能够更好地利用算法来解决实际问题,创造出更美好的生活。
相关文章:
第1节课:算法初印象—开启算法世界的大门
目录 一、算法是什么(一)官方定义(二)算法的五大特性(三)算法与程序的关系 二、算法在生活中的奇妙体现(一)日常出行中的算法(二)购物消费中的算法࿰…...
[C语言日寄] <stdio.h> 头文件功能介绍
在C语言的世界里,<stdio.h> 是一个极其重要的头文件,它提供了标准输入输出功能,是C语言程序与用户交互的核心工具。今天,我们就来深入探讨 <stdio.h> 的功能、使用注意事项以及它的拓展应用。 功能介绍 <stdio.h…...
Python的那些事第五篇:数据结构的艺术与应用
新月人物传记:人物传记之新月篇-CSDN博客 目录 一、列表(List):动态的容器 二、元组(Tuple):不可变的序列 三、字典(Dict):键值对的集合 四、集合…...
Linux:线程池和单例模式
一、普通线程池 1.1 线程池概念 线程池:一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价&…...
【算法-位运算】位运算遍历 LogTick 算法
文章目录 1. 引入2. LogTick 优化遍历过程3. 题目3.1 LeetCode3097 或值至少为 K 的最短子数组 II3.2 LeetCode2411 按位或最大的最小子数组长度3.3 LeetCode3209 子数组按位与值为 K 的数目3.4 LeetCode3171 找到按位或最接近 K 的子数组3.5 LeetCode1521 找到最接近目标值的函…...
【memgpt】letta 课程4:基于latta框架构建MemGpt代理并与之交互
Lab 3: Building Agents with memory 基于latta框架构建MemGpt代理并与之交互理解代理状态,例如作为系统提示符、工具和agent的内存查看和编辑代理存档内存MemGPT 代理是有状态的 agents的设计思路 每个步骤都要定义代理行为 Letta agents persist information over time and…...
Python的那些事第九篇:从单继承到多继承的奇妙之旅
Python 继承:从单继承到多继承的奇妙之旅 目录 Python 继承:从单继承到多继承的奇妙之旅 一、引言 二、继承的概念与语法 三、单继承 四、多继承 五、综合代码示例 六、总结 一、引言 在编程的世界里,继承就像是一场神奇的魔法&#…...
Excel to form ?一键导入微软表单
一句话痛点 “你的Excel越强大,手动复制到Forms就越痛苦。” 合并单元格崩溃成乱码、下拉菜单变纯文本、条件逻辑消失无踪——这些不是技术问题,而是低效工作模式的死刑判决书。 直击解决方案:3分钟,3步,300%效率 1…...
pandas(三)Series使用
一、Series基础使用 import pandasd {x:100,y:200,z:300} s1 pandas.Series(d) #将dict转化为Series print(s1)print("") l1 [1, 2, 3] l2 [a, b, c] s2 pandas.Series(l1, indexl2) #list转为Series print(s2)print("") s3 pandas.Series([11…...
Windows电脑本地部署运行DeepSeek R1大模型(基于Ollama和Chatbox)
文章目录 一、环境准备二、安装Ollama2.1 访问Ollama官方网站2.2 下载适用于Windows的安装包2.3 安装Ollama安装包2.4 指定Ollama安装目录2.5 指定Ollama的大模型的存储目录 三、选择DeepSeek R1模型四、下载并运行DeepSeek R1模型五、使用Chatbox进行交互5.1 下载Chatbox安装包…...
从零开始学 HTML:构建网页的基本框架与技巧
系列文章目录 01-从零开始学 HTML:构建网页的基本框架与技巧 文章目录 系列文章目录前言一、HTML 文档的基本框架1.1 <!DOCTYPE html>、<html>、<head>、<body> 标签解析1.1.1 <!DOCTYPE html> 标签1.1.2 <html> 标签1.1.3 &l…...
如何用微信小程序写春联
生活没有模板,只需心灯一盏。 如果笑能让你释然,那就开怀一笑;如果哭能让你减压,那就让泪水流下来。如果沉默是金,那就不用解释;如果放下能更好地前行,就别再扛着。 一、引入 Vant UI 1、通过 npm 安装 npm i @vant/weapp -S --production 2、修改 app.json …...
2025最新在线模型转换工具onnx转换ncnn,mnn,tengine等
文章目录 引言最新网址地点一、模型转换1. 框架转换全景图2. 安全的模型转换3. 网站全景图 二、转换说明三、模型转换流程图四、感谢 引言 在yolov5,yolov8,yolov11等等模型转换的领域中,时间成本常常是开发者头疼的问题。最近发现一个超棒的…...
算法每日双题精讲 —— 前缀和(【模板】一维前缀和,【模板】二维前缀和)
在算法竞赛与日常编程中,前缀和是一种极为实用的预处理技巧,能显著提升处理区间和问题的效率。今天,我们就来深入剖析一维前缀和与二维前缀和这两个经典模板。 一、【模板】一维前缀和 题目描述 给定一个长度为 n n n 的整数数组 a a a&…...
C++泛型编程指南03-CTAD
文章目录 C17 自定义类型推断指引(CTAD)深度解析一、基础概念1. 核心作用2. 工作原理 二、标准库中的 CTAD 应用1. 容器类型推导2. 智能指针推导3. 元组类型推导 三、自定义推导指引语法1. 基本语法结构2. 典型应用场景 四、推导指引设计模式1. 迭代器范…...
记8(高级API实现手写数字识别
目录 1、Keras:2、Sequential模型:2.1、建立Sequential模型:modeltf.keras.Sequential()2.2、添加层:model.add(tf.keras.layers.层)2.3、查看摘要:model.summary()2.4、配置训练方法:model.compile(loss,o…...
88.[4]攻防世界 web php_rce
之前做过,回顾(看了眼之前的wp,跟没做过一样) 属于远程命令执行漏洞 在 PHP 里,system()、exec()、shell_exec()、反引号()等都可用于执行系统命令。 直接访问index.php没效果 index.php?sindex/think\a…...
23.Word:小王-制作公司战略规划文档❗【5】
目录 NO1.2.3.4 NO5.6 NO7.8.9 NO10.11 NO12 NO13.14 NO1.2.3.4 布局→页面设置对话框→纸张:纸张大小:宽度/高度→页边距:上下左右→版式:页眉页脚→文档网格:勾选只指定行网格✔→ 每页:…...
在Arm芯片苹果Mac系统上通过homebrew安装多版本mysql并解决各种报错,感谢deepseek帮助解决部分问题
背景: 1.苹果设备上安装mysql,随着苹果芯片的推出,很多地方都变得不一样了。 2.很多时候为了老项目能运行,我们需要能安装mysql5.7或者mysql8.0或者mysql8.2.虽然本文编写时最新的默认mysql已经是9.2版本。 安装步骤 1.执行hom…...
C++【iostream】数据库的部分函数功能介绍
在 C 编程世界中,iostream 库扮演着举足轻重的角色,它是 C 标准库的核心组成部分,为程序提供了强大的输入输出功能。无论是简单的控制台交互,还是复杂的文件操作,iostream 库都能提供便捷高效的解决方案。本文将深入剖…...
数据结构 树1
目录 前言 一,树的引论 二,二叉树 三,二叉树的详细理解 四,二叉搜索树 五,二分法与二叉搜索树的效率 六,二叉搜索树的实现 七,查找最大值和最小值 指针传递 vs 传引用 为什么指针按值传递不会修…...
【实战篇章】深入探讨:服务器如何响应前端请求及后端如何查看前端提交的数据
文章目录 深入探讨:服务器如何响应前端请求及后端如何查看前端提交的数据一、服务器如何响应前端请求HTTP 请求生命周期全解析1.前端发起 HTTP 请求(关键细节强化版)2. 服务器接收请求(深度优化版) 二、后端如何查看前…...
玩转ChatGPT:DeepSeek测评(科研思路梳理)
一、写在前面 DeepSeek-R1出圈了,把OpenAI的o3-mini模型都提前逼上线了(还免费使用)。 都号称擅长深度推理,那么对于科研牛马的帮助有多大呢? 我连夜试一试。 二、科研思路梳理 有时候我们牛马们做了一堆结果以后&…...
python学opencv|读取图像(五十三)原理探索:使用cv.matchTemplate()函数实现最佳图像匹配
【1】引言 前序学习进程中,已经探索了使用cv.matchTemplate()函数实现最佳图像匹配的技巧,并且成功对两个目标进行了匹配。 相关文章链接为:python学opencv|读取图像(五十二)使用cv.matchTemplate()函数实现最佳图像…...
AJAX RSS Reader:技术解析与应用场景
AJAX RSS Reader:技术解析与应用场景 引言 随着互联网的快速发展,信息量呈爆炸式增长。为了方便用户快速获取感兴趣的信息,RSS(Really Simple Syndication)技术应运而生。AJAX RSS Reader作为一种基于AJAX技术的信息读取工具,在用户体验和信息获取方面具有显著优势。本…...
Linux环境下的Java项目部署技巧:安装 Mysql
查看 myslq 是否安装: rpm -qa|grep mysql 如果已经安装,可执行命令来删除软件包: rpm -e --nodeps 包名 下载 repo 源: http://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm 执行命令安装 rpm 源(根据下载的…...
gitea - fatal: Authentication failed
文章目录 gitea - fatal: Authentication failed概述run_gitea_on_my_pkm.bat 笔记删除windows凭证管理器中对应的url认证凭证启动gitea服务端的命令行正常用 TortoiseGit 提交代码备注END gitea - fatal: Authentication failed 概述 本地的git归档服务端使用gitea. 原来的用…...
计算机网络安全与运维的关键 —— 常用端口全解析
目录 前言 常见端口分类及用途 20 端口(FTP 数据传输) 21 端口(FTP 消息控制) 22 端口(SSH) 23 端口(Telnet) 25 端口(SMTP) 53 端口(DNS&…...
JavaScript Navigator:深入理解浏览器导航机制
JavaScript Navigator:深入理解浏览器导航机制 引言 在Web开发中,浏览器导航是用户与网页交互的重要部分。JavaScript Navigator对象提供了丰富的API,允许开发者深入理解并控制浏览器的导航行为。本文将详细介绍JavaScript Navigator对象的功能、使用方法以及在实际开发中…...
笔灵ai写作技术浅析(三):深度学习
笔灵AI写作的深度学习技术主要基于Transformer架构,尤其是GPT(Generative Pre-trained Transformer)系列模型。 1. Transformer架构 Transformer架构由Vaswani等人在2017年提出,是GPT系列模型的基础。它摒弃了传统的循环神经网络(RNN)和卷积神经网络(CNN),完全依赖自…...
