使用前景: 工作过程中遇到了后端接口响应过慢,前端界面一致loading的情况,这个时候可以尝试采用将Axios的responseType参数被设置为'stream'类型实现。
stream介绍: stream类型意味着你希望服务器响应的数据以Node.js流(stream)的形式返回,而不是作为JSON、文本或其他类型的响应体。使用它的好处是可以避免一次性加载整个响应体,避免页面一直无响应,同时stream在处理大文件、实时数据传输或需要直接操作数据流的场景中非常有用。
使用: axios+stream const axios = require('axios'); axios({ method: 'post', url: 'YOUR_STREAM_ENDPOINT_URL', // 替换为你的流式接口URL responseType: 'stream', data: {} }) .then(response => { // 这里的response.data是一个Node.js的流(Stream)对象 response.data.on("data", (chunk) => { console.log(chunk, "data"); // 处理每个数据块,例如写入文件或进行其他操作 }); response.data.on("end", (end) => { console.log(end, "end"); // 数据接收完毕的处理逻辑 }); response.data.on("error", (error) => { // 流处理过程中发生错误的处理逻辑 }); }); 这个方法和网上搜索出来的大多数流式接口方法一致,但是在axios中设置responseType为 "stream"后,控制台会警告:
The provided value 'stream' is not a valid enum value of type XMLHttpRequestResponseType.
因为axios基于XMLHttpRequest原生,而XMLHttpRequest原生不直接支持responseType: 'stream'这个值。
Python作为深度学习和人工智能学习的热门语言,学习一门语言,除了学会其简单的语法之外还需要对其进行运行和实现,才能实现和发挥其功能和作用。下面来介绍运行Python代码常用到的工具总结。
一.Python、Pycharm、Anaconda关系介绍 1. Python Python是一种跨平台的计算机程序语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,被用于独立的、大型项目的开发。
Python是我们进行项目开发而使用的一门计算机语言,通俗来说就是编写代码,编写完代码之后,我们就需要运行,不然代码是死的,机器是无法识别的,这时我们需要运行Python代码的运行环境和工具。
我们可以使用以下四种方式来python代码,前提是我们已经下载好了Python解释器,下载链接https://www.python.org/getit/,下载后配置好其系统环境变量,解释器的作用就是帮助我们将Python代码解释成机器可以识别成的语言,交给机器可以执行的工具。
(1)在命令窗口上运行
快捷键 Win+ R —> 输入cmd 到命令窗口—> 命窗口内输入python,我们就可以运行程序了。
(2)脚本方式运行
新建一个a.txt脚本文件,写完脚本之后, 然后把名称后缀命名为.py,到 命令窗口找到相应的文件目录,然后执行代码 python a.py,就可以运行了。
(3)使用Python自带的IDLE编辑器
IDLE是Python原生自带的开发环境,是迷你版的IDE,与以上方式不同的是它带有图形界面,有简单的编辑和调试功能,但是操作起来比较麻烦。使用方式 Win+ R—> 输入IDLE。
(4)使用第三方的Python的IDE 相对于Python自带的IDLE而言,功能更加全面,界面更加美观,操作起来更加容易。目前比较流行的有PyCharm、Vscode、Jupyter等,个人推荐使用Pycharm,目前使用最多。
2. Pycharm PyCharm是一种常用的Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发,界面编写代码和运行操作更加简单。
3. Anaconda Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。因为包含了大量的科学包,Anaconda 的下载文件比较大(约 531 MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)。
Anaconda包括Conda、python以及一大堆安装好的工具包比如:numpy、pandas等。Miniconda只包括Conda、Python,是Anaconda的简约版。conda是一个开源的包、环境管理器,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同的环境之间切换。 二.开发常见搭配 只学习python语言的初学者可以先下载好特定版本的Python解释器后,然后再搭配界面程序Pycharm来进行简单的语法学习和项目调试,因为不需要考虑不同项目需要不同python工具包的版本问题。即:Python解释器 + Pycharm。
而要进行项目开发的人员,时常有多个项目同时开发,并且不同的项目需要不同版本的工具包,这时使用Anaconda可以帮助我们管理更多项目的环境,将每个项目单独放在一个虚拟环境中,并且使这些环境中工具包相互独立,不会产生工具包版本冲突问题,并且可以下载多个版本的工具包,可以安装多个不同版本的Python解释器。Anaconda自带Python解释器,即:Anaconda + Pycharm。
三.总结 Python是我们进行项目开发而使用的一门计算机语言,为了更好的调试代码和运行,使用界面程序Pycharm进行操作,而运行环境和工具包的下载与安装可以由Anaconda进行管理。
开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9 系统展示
前台首页
用户注册
登录界面
个人中心
商品信息界面
管理员登录
商品上架管理
商品信息管理
客服聊天管理
联系商家管理
订单管理
摘要
高校二手交易平台的主要使用者分为管理员和用户,实现功能包括管理员:个人中心、用户管理、商品上架管理、订单信息管理、商品信息管理、联系商家管理、论坛管理、管理员管理、系统管理,用户:个人中心、商品上架管理、订单信息管理、商品信息管理、联系商家管理、我的收藏管理,前台首页;首页、商品信息、论坛信息、新闻资讯、我的、跳转到后台、客服等功能。由于本网站的功能模块设计比较全面,所以使得整个高校二手交易平台信息管理的过程得以实现。
本系统的使用可以实现本高校二手交易平台管理的信息化,可以方便管理员进行更加方便快捷的管理。
研究背景
随着网络不断的普及发展,高校二手交易平台依靠网络技术的支持得到了快速的发展,首先要从用户的实际需求出发,通过了解用户的需求开发出具有针对性的高校二手交易平台,利用目前网络给用户带来的方便快捷这一特点对系统进行调整,设计的系统让用户的使用起来更加方便,本系统的主要目的就是给用户带来方便与快捷,用户只要在家中就可以进行操作[1]。同时随着电子商务的发展网上高校二手交易平台已经受到广大用户的关注。
关键技术
JSP(Java脚本页面)是Sun和许多参与建立的公司所提倡的动态web技术。将Java程序添加到传统的web页面HTML文件(*)。htm,*。Html)。
JAVA语言是目前软件市场上应用最广泛的语言开发程序。可以在多种平台上运用的,兼容性比较强,适应市面上大多数操作系统,不会出现乱码的现像,其扩展性和维护性都更好,具有分析问题和解决问题的能力,是面向过程的程序设计方便我们编写的代码更强壮。
MYSQL数据库运行速度快,安全性能也很高,而且对使用的平台没有任何的限制,所以被广泛应运到系统的开发中。MySQL是一个开源和多线程的关系管理数据库系统,MySQL是开放源代码的数据库,具有跨平台性。
B/S(浏览器/服务器)结构是目前主流的网络化的结构模式,它能够把系统核心功能集中在服务器上面,可以帮助系统开发人员简化操作,便于维护和使用。
系统分析
对系统的可行性分析以及对所有功能需求进行详细的分析,来查看该系统是否具有开发的可能。
系统设计
功能模块设计和数据库设计这两部分内容都有专门的表格和图片表示。
系统实现
高校二手交易平台,在系统首页可以查看首页、商品信息、论坛信息、新闻资讯、我的、跳转到后台、客服等内容。管理员登录进入高校二手交易平台可以查看个人中心、用户管理、商品上架管理、订单信息管理、商品信息管理、联系商家管理、论坛管理、管理员管理、系统管理等信息。用户登录进入高校二手交易平台可以查看个人中心、商品上架管理、订单信息管理、商品信息管理、联系商家管理、我的收藏管理等内容。
系统测试
高校二手交易平台开发设计完成后,需要对其进行系统测试,测试的主要目的就是发现并找出系统中存在的问题,并及时的进行解决,确保系统可以正常稳定的运行下去,在进行系统测试的时候,在一定要非常的认真、仔细,切记不能粗心,不能放过一个漏洞,测试时候一定不要着急,要按照之前指定好的测试步骤一步一步进行,并且将测试的结果进行详细的记录,我们在进行测试的时候做好选择自动化的测试,这样既可以节省时间而且也能确保测试的准确性,如果采用人工测试的方法就不会这么的方便,由于人工测试有很多不确定的因素,在测试过程中很可能会出现一些问题,用机器测试就不会出现任何的问题,而且机器不会疲惫会一直二等工作下去。在测试的时候一定要非常专注,时刻关注着测试的结果,一但发现异常及时进行修改,最后,测试完之后的文档应该保存下来,方便以后测试时用到。系统测试的方法有很多,对于本高校二手交易平台的测试,我们使用了测试用得最多的黑盒测试方法来对该系统进行测试。
结论
通过对JSP技术和MYSQL数据库的简介,从硬件和软件两反面说明了高校二手交易平台的设计与实现的可行性,本文结论及研究成果如下:实现了JSP与MYSQL相结合构建的高校二手交易平台,我感触到学习一门新技术,最重要的是实践,只有多动手才能尽快掌握它,一个系统的开发,经验是最重要的,经验不足,就难免会有许多考虑不周之处。要想吸引更多的用户,系统的界面必须要美观、有特色、友好,功能要健全。
(可运行源码+sql文件+文档)
> > 【痕迹】QQ+微信朋友圈和聊天记录分析工具 > > (1)纯Python语言实现,使用Flask后端,本地分析,不上传个人数据。 > > (2)内含QQ、微信聊天记录保存到本地的方法,真正实现自己数据自己管理。 > > (3)数据可视化分析QQ、微信聊天记录,提取某一天的聊天记录与大模型对话。 > > 下载地址:https://www.alipan.com/s/x6fqXe1jVg1 > 基本原理 在软件开发过程中,单元测试是保证代码质量的重要手段。但是,当测试涉及到静态方法时,传统的Mocking工具往往显得无能为力。幸运的是,Mockito为我们提供了一种解决方案,让我们可以轻松模拟静态方法,从而实现对静态方法的单元测试。
Mockito是一个流行的Java测试框架,它允许开发者模拟(mock)对象的行为,以便于在单元测试中隔离测试对象,避免依赖外部系统或服务。然而,Mockito在早期版本中并不支持静态方法的模拟。随着Mockito 3.4.0版本的发布,这一限制被打破,我们可以使用Mockito.mockStatic方法来模拟静态方法了。
代码示例 示例1:模拟单个静态方法 假设我们有一个工具类MathUtils,其中包含一个静态方法add,我们想要测试这个方法的行为。
public class MathUtils { public static int add(int a, int b) { return a + b; } } 使用Mockito模拟这个静态方法的示例代码如下:
import static org.mockito.Mockito.*; public class MathUtilsTest { @Test public void testAdd() { // 模拟静态方法 mockStatic(MathUtils.class); // 配置模拟对象的行为 when(MathUtils.add(10, 5)).thenReturn(20); // 调用静态方法并验证结果 int result = MathUtils.add(10, 5); assertEquals(20, result); // 验证静态方法是否被调用 verifyStatic(MathUtils.
实现在Spring Boot项目中监听Kafka指定topic中的消息,有两种实现思路:
一种是使用Spring Boot提供的@KafkaListener注解
另外一种是在kafka提供的原生java客户端中,消费者使用定时任务或者采while(true){…}进行消息拉取,这种方式可以避免与parent 版本出现冲突
目录
一、@KafkaListener注解
二、while(true){…}用.poll()方式进行消息拉取
一、@KafkaListener注解 导入依赖
<!-- spring-kafka --> <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> <version>版本号</version> </dependency> 配置文件
# kafka地址 spring.kafka.bootstrap-servers=127.0.0.1:9092 # 消费者组ID spring.kafka.consumer.group-id=1 # 键序列化方式 spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer # 值序列化方式 spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer # 默认提交偏移量 spring.kafka.consumer.enable-auto-commit=true 监听类配置
import org.springframework.kafka.annotation.KafkaListener; import org.springframework.stereotype.Component; @Component public class MyKafkaConsumer { @KafkaListener(topics = {"test","dev"}) //在这里指定要监听的topic,可以监听多个 public void listenToMessage(String message){ System.out.println("使用注解监听到的消息"+message); } } 运行效果
二、使用Kafka提供的原生java客户端中,消费者采while(true){…}用.poll()方式进行消息拉取 导入依赖
<!--kafka--> <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>版本号</version> </dependency> 配置文件
这里以properties文件为例
#建立与kafka集群连接的host/port组,请通过控制台公网访问获取 bootstrap.servers=127.0.0.1:9092 #用来唯一标识consumer进程所在组的字符串,如果设置同样的group id,表示这些processes都是属于同一个consumer group group.
🏡作者主页:点击! 👨💻Linux高级管理专栏:点击!
⏰️创作时间:2024年6月3日11点44分
🀄️文章质量:95分
为了更好地控制对网站资源的访问,可以为特定的网站目录添加访问授权。本节将分别介绍客户机地址限制和用户授权限制,这两种访问方式都应用于httpd.conf 配置文件中的目录区域范围内。
🫸1.客户机地址限制 通过Require配置项,可以根据主机的主机名或IP地址来决定是否允许客户端访问,在httpd服务器的主配置文件的<Location>,<Directory>,<Fires>,<Limit>配置段中均可以试用Reuire配置项来控制客户端的访问。试用Require配置,需要设置客户端地址以构成完整的限制策略,地址的形式可以是用IP地址,网络地址,主机名或域名,使用名称all 时候表示任意地址。
限制策略的常用格式:
Require all granted 表示允许所有主机访问
Require all denied 表示拒绝所有主机访问
Require local 表示仅允许本地主机访问
Require [not] host <主机名或域名列表>: 表示允许或拒绝指定主机或域访问
Require [not] ip<ip地址或网段列表>: 表示允许或拒绝指定IP地址或网段访问
默认情况下httpd的访问全是是对所有客户机全开的
编辑主配置文件
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf ➡️允许访问限制 限制 基于IP地址限制,只允许192.168.93.112 主机访问
重启服务
该指令将限制对当前上下文(例如整个服务器或特定网站)的访问,仅允许来自指定 IP 地址的请求。
Apache 重新启动后,对 Web 服务器的访问将被限制为仅允许来自 IP 地址 192.168.93.112 的请求。来自任何其他 IP 地址的请求都将被拒绝。
测试 192.168.93.112
192.168.93.113
访问出现403的情况
⬅️禁止IP访问 禁止192.168.93.112 访问 其余所有都可以访问
限制 编辑配置文件
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf systemctl restart httpd 重启Httpd服务 Require all granted :该行默认允许任何IP地址访问。Require not ip 192.
在miscellaneous中添加assemble listing选项就可以生成汇编文件了
定位器追踪器连接手机的方法主要取决于追踪器的类型和功能。下面将列举一些常见的方式来说明如何将定位器追踪器与手机连接:
蓝牙连接
检查设备兼容性:确保你的定位器追踪器支持蓝牙功能,同时手机的蓝牙也已开启。进行配对:在手机的蓝牙设置中搜索并选择你的定位器设备,然后根据提示完成配对过程。 Wi-Fi连接
确认WLAN功能:如果定位器支持WLAN,确保你知道设备的SSID和密码。连接到网络:在手机上搜索并连接到以定位器命名的Wi-Fi网络,输入正确的密码进行连接。 NFC触碰连接
打开NFC:在手机的设置中开启NFC功能,并且确保定位器支持此功能。进行触碰:将定位器靠近手机背面的NFC区域,等待手机响应并弹出配对弹窗后完成操作。 通过专属APP添加设备
下载应用:根据定位器的说明书或官方网站指引,下载对应的手机应用程序,如HUAWEI的查找设备APP。手动添加设备:在APP内通常有添加设备的选项,按照步骤引导完成设备的绑定和连接。 使用物联卡或手机卡
安装SIM卡:某些定位器需要安装物联卡或手机卡来获取位置信息,根据产品说明安装卡片。流量支持:确保卡片有足够的流量支持,以便定位器在工作中可以发出位置信号。 此外,在了解以上内容后,以下还有一些其他建议:
电量提醒:注意定期检查定位器的电量,以免电量耗尽影响使用。固件升级:保持定位器的固件版本为最新,以确保功能的正常使用和改进。 综上所述,连接手机与定位器追踪器时,重要的是遵循设备的具体指南,并确保所有软件和硬件要求都得到满足。一旦连接成功,就可以利用手机监控和管理你的定位器了。
随着科技的不断进步,人工智能生成内容(AIGC,Artificial Intelligence Generated Content)在移动应用开发中的应用越来越广泛。AIGC不仅能提高开发效率,还能带来更好的用户体验。本文将探讨AIGC在移动APP开发中的应用及其未来前景。
一、AIGC在移动APP开发中的应用 1.自动化代码生成
- 通过AIGC技术,开发者可以自动生成部分代码,从而提升开发效率。例如,利用人工智能算法,可以自动生成界面布局代码(如XML、HTML),甚至是部分逻辑代码。这不仅减少了开发者的工作量,还能降低人为错误的发生。
2.智能推荐和个性化内容
- AIGC可以根据用户行为数据,生成个性化推荐内容。例如,在电商APP中,AIGC可以分析用户的浏览和购买历史,推荐相关商品;在社交媒体APP中,AIGC可以生成个性化的内容推荐,提高用户黏性。
3.自然语言处理和语音交互
- AIGC在自然语言处理(NLP)和语音识别方面的应用,使得移动APP可以实现更加智能的语音助手功能。例如,通过AIGC技术,移动APP可以实现语音输入、智能应答、语音导航等功能,提升用户体验。
4.图像和视频生成
- AIGC技术在图像和视频生成方面的应用也非常广泛。例如,在社交媒体APP中,用户可以通过AI技术生成个性化头像、滤镜效果;在短视频APP中,AIGC可以自动生成视频剪辑、特效等内容。
5.内容审核和过滤
- 在内容审核和过滤方面,AIGC技术可以大幅提升效率。例如,利用AI算法,可以自动识别和过滤不良信息、敏感内容,确保平台内容的健康和安全。
二、AIGC应用的实际案例 1.GitHub Copilot
- GitHub Copilot是一个基于人工智能的代码生成工具,它通过学习大量的开源代码库,可以在开发者编写代码时,自动补全代码片段,提高开发效率。
2.Spotify
- Spotify利用AIGC技术,根据用户的听歌习惯和偏好,生成个性化的音乐推荐内容。这不仅提升了用户体验,还增加了用户黏性。
3.TikTok
- TikTok利用AIGC技术,在短视频生成和编辑方面实现了高度自动化。例如,用户可以通过AI生成个性化的视频特效、滤镜等,提高了视频制作的便捷性和趣味性。
三、AIGC在移动APP开发中的未来前景 1.更高效的开发流程
- 随着AIGC技术的不断进步,未来移动APP开发将变得更加高效。开发者可以借助AI工具,自动生成更多的代码和内容,从而减少开发时间和成本。
2.更个性化的用户体验
- AIGC技术将使得移动APP能够提供更加个性化的用户体验。通过分析用户数据,AI可以生成个性化的推荐内容、界面布局等,满足用户的不同需求。
3.更智能的交互方式
- 未来,AIGC技术将在自然语言处理和语音识别方面取得更大突破。移动APP将实现更加智能的语音助手功能,使得用户可以通过语音与APP进行更加自然的互动。
4.更安全的内容环境
- AIGC技术在内容审核和过滤方面的应用将更加广泛和深入。通过AI算法,可以实现更加精准和高效的内容审核,确保平台内容的安全和健康。
四、面临的挑战和解决方案 虽然AIGC在移动APP开发中有着广阔的应用前景,但也面临一些挑战:
1.数据隐私与安全
- AIGC需要大量的数据支持,如何保护用户数据隐私是一个重要问题。开发者需要采取严格的数据保护措施,确保用户数据的安全。
2.算法的公平性与透明性
- AI算法的公平性和透明性也是一个重要挑战。开发者需要确保AI算法不带有偏见,并且在生成内容时具有透明性。
3.技术复杂性
- AIGC技术的复杂性要求开发者具备较高的技术水平。为了解决这一问题,可以通过培训和引进专业人才,提高团队的技术能力。
结论 AIGC在移动APP开发中的应用具有广阔的前景。它不仅能够提高开发效率,还能带来更好的用户体验。尽管面临一些挑战,但通过合理的解决方案,这些挑战是可以克服的。未来,随着AIGC技术的不断发展和完善,移动APP开发将迎来更加智能和高效的新时代。
随着人工智能技术的迅猛发展,AIGC(人工智能生成内容)领域正迎来前所未有的繁荣。其中,全能大模型产品以其强大的生成能力和广泛的应用场景,吸引了众多用户的关注。腾讯元宝APP的上线更是为这一领域注入了新的活力。本文将从个人使用体验出发,分享对全能大模型AIGC产品的看法并探讨其未来的发展方向。
一、全能大模型AIGC产品的使用体验 在接触过的多款全能大模型AIGC产品中,我深刻感受到了它们在不同领域的强大能力。这些产品能够流畅地撰写各种风格的文章,无论是新闻报道、科技评论还是文学创作,都能轻松应对。同时它们还具备强大的图像生成能力,能够创作出各种风格的画作和插图,为用户提供了丰富的视觉体验。此外,语音合成功能也让人印象深刻,能够将文本内容转化为自然流畅的语音输出。
然而,在使用过程中也发现了一些问题。不同产品在不同领域的表现存在差异。有些产品在自然语言处理方面表现出色,但在图像生成和语音合成方面稍显不足;而有些产品则在图像生成方面有着出色的表现,但在自然语言处理方面稍显逊色。这要求用户在使用时需要根据自己的需求选择合适的产品。
二、选择倾向与理由 在多款全能大模型AIGC产品中,更倾向于选择那些在多个领域都有均衡表现的产品。这些产品不仅能够在各个领域提供高质量的服务,还能够根据用户的需求进行个性化的定制。以腾讯元宝APP为例,它在自然语言处理、图像生成、语音合成等方面都具备不错的表现,能够满足用户在各种场景下的需求。
选择腾讯元宝APP的理由主要有以下几点:首先它在多个领域都有均衡的表现,能够满足在不同场景下的需求;其次腾讯作为国内知名的互联网企业,具有强大的技术实力和丰富的用户数据,能够为产品提供持续的优化和升级;最后腾讯元宝APP还提供了丰富的个性化定制功能,能够根据自己的需求进行灵活的设置和调整。
三、全能大模型AIGC产品的未来展望
技术持续进步:随着深度学习、强化学习等技术的不断进步,全能大模型AIGC产品的性能将得到显著提升。这些模型将能够处理更复杂的任务,生成更高质量的内容,并在多个领域展现出更强大的能力。
跨界融合创新:全能大模型AIGC产品将实现与其他技术的跨界融合创新。例如,与虚拟现实(VR)、增强现实(AR)技术的结合,将为用户带来更加沉浸式的体验;与物联网(IoT)技术的结合,将实现智能家居、智慧城市的智能化升级;与区块链技术的结合,将保障数据的安全性和透明性。
个性化与智能化:通过大数据和机器学习技术的深入应用,全能大模型AIGC产品将能够更深入地了解用户的需求和偏好,实现更个性化的服务。同时,这些产品将具备更高的智能化水平,能够自主学习、自主优化,为用户提供更加智能、便捷的服务。
应用场景的拓展:全能大模型AIGC产品的应用场景将不断拓展。除了传统的文本、图像、语音处理等领域外,这些产品将在更多领域得到应用,如教育、医疗、娱乐等,为人类生活带来更多便利和丰富性。
伦理与安全的挑战:随着全能大模型AIGC产品的广泛应用,我们也将面临一些伦理和安全方面的挑战。如何确保生成的内容符合道德和法律规范?如何保障用户数据的安全和隐私?这些问题需要我们在技术发展的同时,加强相关法律法规的制定和执行,以及加强行业自律和监管。
生态共建与产业协同:全能大模型AIGC产品的发展将不再是单一企业的竞争,而是整个产业的协同发展。各大互联网企业、科研机构、高校等将共同参与AIGC技术的研发和应用,形成一个良好的产业生态。通过共享资源、互通有无,共同推动AIGC技术的发展和应用,为人类社会的进步做出更大的贡献。
总之,全能大模型AIGC产品作为人工智能领域的重要应用之一,将在未来展现出更加广阔的发展前景和潜力。我们有理由相信,在技术的不断进步和应用场景的不断拓展下,全能大模型AIGC产品将为我们带来更加智能化、便捷化、个性化的生活体验。
游戏简介 游戏中独特的杂交植物更是为游戏增添了不少亮点。这些杂交植物不仅外观独特,而且拥有更强大的能力,能够帮助玩家更好地应对游戏中的挑战。玩家可以通过一定的条件和方式,解锁并培养这些杂交植物,从而不断提升自己的战斗力。合理搭配植物,制定出最有效的战术。
Tips:虚拟机测试安装成功,但是好像调不了游戏窗口的大小
游戏截图 安装包下载 植物大战僵尸杂交版2.0.88最新版安装包-小8源码屋游戏简介 游戏中独特的杂交植物更是为游戏增添了不少亮点。这些杂交植物不仅外观独特,而且拥有更强大的能力,能够帮助玩家更好地应对游戏中的挑战。玩家可以通过一定的条件和方式,解锁并培养这些杂交植物,从而不断提升自己的战斗力。合理搭配植物,制定出最有效的战术。 Tips:虚拟机测试安装成功,但是好像调不了游戏窗口的大小 游戏截图 安装包下载 植物大战僵尸杂交版v2.0.88安装程序.zip下载提取码:vhttps://www.888host.cn/669.html
一、前言 单片机或者FPGA等计算能力弱的嵌入式设备进行加减运算还是容易实现,但是想要计算三角函数(sin、cos、tan),甚至双曲线、指数、对数这样复杂的函数,那就需要费些力了。通常这些函数的计算需要通者查找表或近似计算(如泰勒级数逼近)等技术来转换为硬件易于实现的方式。
CORDIC(Coordinate Rotation Digital Computer, 坐标旋转数字计算方法)算法就是一种化繁为简的算法,通过基本的加减和移位运算代替乘法运算,逐渐逼近目标值,得出函数的数值解。
二、Cordic算法理论推导 理论推导参考:CORDIC算法理论详解_cordic算法详解-CSDN博客,这篇博客的推导仔细而全面。
Cordic算法的基石在于一个规律:从tan45°开始,角度每减半,tan值也接近减半。这一规律直接将三角函数运算变成2的幂运算,而这在数字电路中可直接用移位运算来实现。
三、Cordic算法 matlab实现 由于Cordic旋转角度有限(-99.88°,99.88°),因此对于在第二三象限的目标角度,需要做预处理。一般常用的两种方式:1,第二象限逆时针旋转90°到第一象限,第三象限顺时针旋转90°到第四象限,然后按cordic算法参与计算;2,第二象限顺时针旋转180°到第四象限,第三象限顺时针旋转180°到第一象限,然后按cordic算法参与计算。后面分别用这两种方法进行了matlab实现。
3.1 已知相位(角度)求坐标(正弦余弦) function [sin_theta,cos_theta] = cordic_sincos(theta,n) % n:iterations % theta: -180~180 tan_table = 2.^-(0 : n-1); angle_rad_lut = atan(tan_table); %angle_deg_lut = rad2deg( atan(tan_table) ); k = 1; for i = 0 : n-1 k = k*(1/sqrt(1 + 2^(-2*i))); end x = k; y = 0; theta_tar = theta*pi/180; % to be rad z=theta_tar; % preprocess if (theta_tar > pi/2) theta_tar = theta_tar - pi; sign_x = -1; sign_y = -1; elseif (theta_tar < -pi/2) theta_tar = theta_tar + pi; sign_x = -1; sign_y = -1; else sign_x = 1; sign_y = 1; end for i = 0 : n-1 if (z > 0) d =1; else d=-1; end x_temp = x; y_temp =y; z_temp = z; x= x_temp - d*y_temp*2^(-i); y = y_temp + d*x_temp*2^(-i); z = z_temp - d*angle_rad_lut(i+1); end sin_theta = sign_y*y; cos_theta = sign_x*x; end 3.
前言:手机自发明以来,过去一直是国际品牌占主导地位,从最初的爱立信、摩托罗拉,到后来的诺基亚、三星,苹果在这个手机行业里,竞争激励,没有百年企业,每个品牌的盛衰都有背后的历史背景和自身的运作策略影响。
品牌的厚度和自身技术实力有直接关系,苹果和三星都有自家研发的CPU 而且份额稳居全球前列。而从华为 2014 年在 MATE 系列开始使用自研芯片后,全球手机行业悄悄发生了变化,2016年开始,国产品牌占据全球市场的重要角色,突出代表是华为和OPPO 两家,根据IDC数据显示2016-2018年全球份额前5名分别是三星、苹果、华为、OPPO、小米。
通过数据分析,发现一个值得细思的问题。在全球,华为早已确立国产品牌第一的位置,而在国内市场,经过4年的努力才逐渐成为第一品牌,华为作为一家具有CPU 核心竞争优势的厂家,在全球不进入美国市场的情况下,都能稳占国产第一品牌的地位,但是在国内市场却不敌OV系品牌。但什么因素作用还能超过核心技术CPU 的影响呢?众所周知在市场营销理论里的 4P,即:产品(Product)、价格(Price)、渠道(Place)、宣传(Promotion )是核心因素。今天我们来讨论一下价格对市场份额的影响。
1背景
首先看价格管理带来的关键影响,我们说的价格不只是零售价格,还是渠道分销价格,渠道商就是品牌商的同盟军,是品牌商的左膀右臂,这个团队是否强大和品牌兴衰息息相关。而价格管理是否到位,决定了同盟军的军饷和动力。
我们来看手机行业的一个典型案例:三星品牌。这个在全球都是第一的品牌到了中国市场份额只有可怜的1%,究其原因就是在2015年实施的大改革,为了追求更高的市场份额,它对渠道同盟军做了大手术,出台两大决策,渠道方面放弃国包制改用平台制,销售方面放弃渠道主动力,改用厂家人员主动力。管理模式的改变随之而来的是市场价格的混乱,渠道商由于没利益而逐步退出三星手机分销,壮士断臂的决心还没来得及迎来新生,就被竞争激烈的市场打得落花流水,谁也没想到 2015 年以后的全球市场是中国手机的天下,竞争最激烈的战场就在中国。
渠道就如一个人的嵴椎,重要且需呵护。
价格管理的另外一个关键影响是品牌力,品牌价值越大,产品价格越贵,这个规则同样适用于手机行业,如苹果品牌。华为品牌从最初的只卖千元智能机到现在能够在旗舰机和苹果、三星一决高下,经历了多年淬炼。OV 品牌从最初的农村包围城市到成为全球前列品牌同样经历了曲折和磨砺。这并不是简单的你只要卖得贵,消费者就来买单的简单逻辑,也不是品牌的经营沉淀。而价格管理的把握,至关重要。
我们回到实际市场,虽然一个品牌的份额影响因素很多,但作为4P之一的价格管理一定是关键因素。华为品牌在国内市场价格管理效果低于OV品牌,虽然具有核心科技力量,却只能辛苦追赶 OV,而 OV品牌凭借强大的价格管理机制,长期占据国内市场份额前列。为什么同样是手机品牌,价格管理却差异这么大,华为的管理能力不容置疑,不是管理又是什么原因?
2 价格混乱的原因
2.1历史原因
由于我国幅员辽阔,仅地级市就330多个。而且东西部经济差距较大,交通、信息等也存在很大差异,一个品牌想在国内实现高销量高份额,起初只要做到最大化覆盖就可以了。而最大化覆盖在我国环境下靠一个公司去解决是无法实现的,所以孕育而生了各级渠道,国包商、省包商、地包商。即使这样也只是覆盖到地级市,而县级市的2800 多个单元,村镇市场根据市场需求就出现了渠道商主导的批发市场,该批发市场不仅满足了各省市之间的缺货调货问题,更主要解决了四六级市场毛细血管的输送。可以说批发市场品牌需要,渠道商需要,四六级市场需要,共赢产物。
但是时至今日环境发生了变化,品牌树立成为主旋律,转头看批发市场,同一款型号的价格每天、每个地区、每个档口的价格都不一样,不时出现恶性竞争,一个热销型号本来市场热捧,但是在众多渠道商的哄卖拼价下,出现零利润甚至负利润,导致渠道商抛弃,市场无法充分展示,而夭折。
2.2 业绩压力原因
既然已经影响了品牌的发展,品牌厂家的发货分销权在自己手里,完全可以砍掉批发市场这个产物,但为什么却从中国开始卖手机到现在都兴盛不衰呢?根源还在于激烈的竞争,A品牌说我为了实现品牌增值,拒绝乱价和批发市场的非规范分销行为,但是为此舍弃了那些常年在批发市场拿货的小零售店、行业外团单、非公司结算客户。这部分根据二八法则只占20%的市场份额,但是激烈的竞争,2%的市场份额都可能是CEO 下课的导火线。中国市场太大了,没有一个品牌能够解决全渠道精细化覆盖问题,为了销量、为了占有率,批发市场无法舍去,但是还得管理,管得严,销量下滑,管得松,产品价格一泻千里,产品草草退市。
2.3 渠道商组成
华为作为通讯业的巨头,传承了手机行业的历史发展,得益于广大的渠道,通过研发领先和品质过硬的产品逐步赢取了渠道商认同,成为近10年手机市场的龙头,而 OV系列得益于当年的VCD、DVD 大战,形成紧密合作的步步高厂商同盟体系,从数码行业转型到手机行业,不受手机行业历史影响,有自身厂商一体化的沉淀优势,一荣俱荣、一损俱损。
在价格管理重要性上,大家都心知肚明,OV系列从进入手机行业就严格管理,通过串号管理,窜货处罚,锁死了批发市场的通道,同时由于自身起步于四六级市场,根基稳健,对批发市场的依赖性也很低。渠道商队伍稳定,再者通过前些年第三方不断的神秘顾客价格监测,常年累月磨炼,且经销商经历过致富之路,也有底气和OV 同甘共苦。
而华为在价格管理上就捉襟见肘,管得严,罚得严,分销受阻,渠道商转向。长期以来是高举严惩窜货,但实际只能睁一只眼闭一只眼。换句话说,华为的渠道商都是行业老兵,没有同致富的经历和底气,看到的更多是品牌更迭的残酷性,无法做到抱团吃苦。对批发市场依赖,对价格波动敏感。
2.4 管理逻辑对比
驱动力不同,华为靠客户驱动,自己做好产品创新和品质,客户做好销售。OV系列靠厂家驱动,做好产品本身的同时,对产能周转和产品周期要求更严格。反映到零售商的感知就是客户做华为产品有库存进货压力,需要挖尽脑汁卖货,卖不掉的自己解决。做OV产品跟着厂家要求走,进货、上促销员,卖不掉的厂家解决换货问题。这样比较OV 的管理手法高于华为,诚然OV 在 2013 年花了上亿元的费用进行IBM 的管理改革,以及自身渠道同盟军的配合是该管理手法的基因。但华为如果真的也向OV 学习。基于市场环境,很难说会成为第二个三星。
3解决方案
不管理价格体系是万万行不通的,行业案例如魅族,魅族电商运作早于小米,品控能力领先行业,粉丝经营领先行业。时至今日却危在旦夕,其重要原因之一就是该品牌的专卖店体制,专卖店客户可以拿到新品上市的最优价格,可以第一时间进行新品售卖。得天独厚的保护机制,让专卖店客户不仅在零售,也做起了批发生意。
魅族几乎每一款产品上市不久就价格到底,渠道商无利可赚,丧失分销权重的产品很快就被市场淘汰。大刀阔斧改革管理的反向案例就是三星。怎么能改革和发展并重,华为的选择很中国,以柔化刚,紧抓产品:让产品竞争力持续增强,不断推出领先竞争对手的技术及产品;控制价格体系维护渠道利益,进行渠道商经营:谨慎筛选,长期合作,奖罚分明,教育渠道商达到厂商一心的效果。针对渠道商进行筛选入围,并且在成为核心渠道商的时候进行二次筛选,比如,全国的368核心客户,省级渠道商的短名单客户,都是对渠道商的层层审核,确保渠道商在实力和合作意愿以及愿景都吻合才确定为核心合作伙伴。
这种严格的客户选择在之前的手机行业里是没有的,这也杜绝了客户短期利益行为和见风使舵的坏习气;严格管理新品价格,适度放松老品价格,给清库产品一定缓冲地带。对新品采用和OV系列一样的串号管理、窜货处罚体制,严格处理问题客户,确保渠道商的利益空间。而对过了热销期的产品,放松价格控制,扩大覆盖范围,尽量延长产品生命周期,帮助品牌抢占市场份额。这种考虑市场份额和品牌力提升的双重策略,也是华为在国内市场逐年份额提升的核心保障。
综上所述,我们可以看到OV系列通过严格的货品管理,强大的管理能力,有效控制了价格体系,华为通过不断地进行核心客户筛选和教育,新品老品区隔管理的方式,确保价格体系都解决了渠道同盟军的利益和稳定,使自己的品牌不断上升。而三星、小米、魅族在策略选择和操作节奏上都出现部分问题,使品牌提升受挫。所以价格管理对手机品牌长期发展的意义是重要的,而每个品牌商及省级经销商所处的环境不同,面临的问题不同,所使用的方法也不同,品牌商只有充分认识到价格管理对品牌的价值,无论是自身内部管控还是聘请第三方进行市场管控,大家才能更有效地去持续输出品牌价值。
✨✨ 欢迎大家来到景天科技苑✨✨
🎈🎈 养成好习惯,先赞后看哦~🎈🎈
🏆 作者简介:景天科技苑
🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。
🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi,flask等框架,linux,shell脚本等实操经验,网站搭建,数据库等分享。
所属的专栏:微信小程序开发零基础教学,难点与应用实战总结
景天的主页:景天科技苑
文章目录 1.小程序更新-生命周期1.1 小程序强制更新1.2 整个应用生命周期 app.js1.3 某个页面生命周期 页面.js 2.分享到朋友圈3.转发功能4.获取头像5.获取昵称6.获取手机号6.1 手机号快速验证6.2 手机号实时验证6.3 代码演示 7.客服功能 1.小程序更新-生命周期 1.1 小程序强制更新 后续我们代码更新
如果我们在微信端使用过小程序–》微信会把小程序代码拉到微信本地
下次打开,会优先使用本地的代码
咱们代码更新了–》强制更新到我们最先的代码
此时,只需要在 app.js 加入如下代码–》整个小程序第一次打开
onLaunch(){ const update=wx.getUpdateManager() update.onUpdateReady(function(){ wx.showModal({ title: '发现新版本', content: '重启应用,更新版本新版本?', success:(res)=>{ if(res.confirm){ update.applyUpdate() } } }) }) } 怎么模拟出更新的效果呢?在开发者工具中 添加编译模式
将编译设置中 下次编译时模拟更新勾上,点击确定
然后就会看到小程序有弹窗,要求强制更新,是否重启应用。点确定 就会重启小程序,下载最新的版本
1.2 整个应用生命周期 app.js 我们在app.js里面将我们上面设置的强制更新删掉
输入App,点击这个带框的,就会自动生成各种生命周期函数
App({ /** * 当小程序初始化完成时,会触发 onLaunch(全局只触发一次) */ onLaunch: function () { console.
本文收录于专栏:精通AI实战千例专栏合集
https://blog.csdn.net/weixin_52908342/category_11863492.html 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。
每一个案例都附带关键代码,详细讲解供大家学习,希望可以帮到大家。正在不断更新中~
神经网络应用与实战案例详解(AIGC技术方向) 人工智能生成内容(AIGC)是当今技术领域中备受瞩目的前沿技术之一。它的兴起与神经网络模型的发展密不可分。在本文中,我们将深入探讨AIGC背后的底层技术,重点介绍神经网络在AIGC中的应用,并提供一些代码示例来解释其工作原理。
1. 神经网络基础 神经网络是一种模仿人类大脑结构的计算模型,由大量的人工神经元组成,通过层次化的方式进行信息处理。在AIGC中,神经网络被用来学习和理解文本、图像等不同类型的数据,并生成与之相关的内容。
2. 循环神经网络(RNN) 循环神经网络是一种特殊的神经网络结构,能够处理序列数据并保持记忆。在AIGC中,循环神经网络被广泛应用于处理文本数据,例如生成文章、对话等。
下面是一个简单的Python代码示例,展示了如何使用PyTorch库实现一个基本的循环神经网络模型:
import torch import torch.nn as nn class RNN(nn.Module): def __init__(self, input_size, hidden_size, output_size): super(RNN, self).__init__() self.hidden_size = hidden_size self.i2h = nn.Linear(input_size + hidden_size, hidden_size) self.i2o = nn.Linear(input_size + hidden_size, output_size) self.softmax = nn.LogSoftmax(dim=1) def forward(self, input, hidden): combined = torch.cat((input, hidden), 1) hidden = self.i2h(combined) output = self.i2o(combined) output = self.softmax(output) return output, hidden def initHidden(self): return torch.
毕业设计(论文)开题报告表
课题名称
基于深度强化学习的课程推荐系统设计与实现
课题来源
自选项目
课题类型
工程设计
指导教师
赵彦锋
学生姓名
学 号
专 业
软件工程
一、课题意义 推荐系统是信息时代中解决信息过载问题的一种有效途径,其通过提供个性化的内容服务,已经成为许多领域的重要技术。与传统搜索引擎不同,推荐系统不仅仅依赖于大量数据的特征和关键词匹配来生成搜索结果,更注重根据用户的特定需求,为其提供个性化的信息支持。推荐系统的核心功能不仅在于满足用户的当前需求,更在于引导和满足其潜在需求。
推荐系统是一门充满活力和潜力的学科,吸引着大量的研究者和工程师的关注。它具有广泛的应用前景,已经成为了信息时代中不可或缺的重要组成部分。随着人工智能和机器学习技术的不断发展,推荐系统变得越来越精细和准确,不仅是一种工具,更是一种生活方式,深刻地影响着人们的日常生活和工作。
目前推荐系统的研究热点也包括教育资源的推荐。随着高校全面扩招以适应全球经济发展,教育领域面临着日益增长的学生数量和对教学质量的提升要求,这为推荐系统在教育领域的应用提供了广阔的发展空间。在高校校园建设中,大数据技术发挥着重要作用,为提高学生学习和老师教学质量提供了强大的支持。利用大数据技术分析学生的成绩和错题数据,可以生成学生的学习情况描述画像,从而为学生推荐相关的补习或者知识补充课程。这种个性化的课程推荐能够针对性地满足学生的学习需求,帮助他们更好地掌握知识,提高学习成绩。此外,推荐系统还可以利用大数据分析学生课外的阅览记录,从而挖掘学生的潜在兴趣点,并推荐相应的课内课程来互相补充。通过将学生已经感兴趣的领域与课程内容相结合,可以增强学生对课程的兴趣,提高学习积极性和学习效率。这种基于学生兴趣点的课程推荐有助于激发学生的学习热情,促进其全面发展。
因此,教育资源的个性化推荐已经成为推荐系统研究的重要方向之一。通过充分利用大数据技术,推荐系统可以为教育领域提供定制化的学习解决方案,提高教学质量和学习效果,促进教育事业的持续发展。
二、国内外发展状况
基于深度强化学习的推荐系统发展是当前推荐系统领域的一项备受关注的重要研究方向。在信息时代,随着互联网的快速发展和数据的爆炸增长,用户面临着海量信息的挑选和筛选,而推荐系统的出现解决了这一难题,帮助用户在庞大的信息海洋中快速找到个性化的内容和产品。传统的推荐系统主要依靠基于规则、协同过滤和内容分析等技术,但随着深度学习和强化学习的发展,基于深度强化学习的推荐系统成为了一种新的研究热点。
深度强化学习是结合了深度学习和强化学习的技术,具有良好的特性,能够通过对大量数据的学习和分析,实现从数据中自动学习和提取特征,进而对复杂的环境进行决策和优化。推荐系统作为深度强化学习的应用领域之一,其发展具有以下几个显著特点和优势:
首先,基于深度强化学习的推荐系统能够实时获取用户的动态偏好和行为,从而更准确地理解用户的需求。传统的推荐系统通常只能根据用户的历史行为和静态特征进行推荐,而深度强化学习可以在用户与系统的交互过程中不断调整推荐策略,实现个性化推荐的动态更新。
其次,基于深度强化学习的推荐系统能够建立推荐项目之间的关联关系总体模型,从而提高推荐的准确度和覆盖度。深度强化学习具有强大的模型学习能力,可以从海量数据中学习到推荐项目之间的潜在关联和相似性,为用户提供更加多样化和相关性强的推荐结果。
同时,基于深度强化学习的推荐系统还具有探索机制,能够避免推荐大量重复的相似项目,发掘用户的潜在兴趣点。传统的推荐系统往往存在“过度推荐”或“过度探索”等问题,而深度强化学习通过合理设计探索机制,可以在保证推荐准确度的同时,提高用户的满意度和体验。
基于Bandit算法的推荐系统则是在探索和利用之间寻找平衡的重要尝试。该算法通过引入探索机制,既能根据用户的兴趣给出合理推荐,又能发掘相似或者潜在未知的兴趣点,从而实现更加精准和多样化的推荐。
值得注意的是,在基于深度强化学习的推荐系统中,基于价值函数的深度强化学习被广泛应用。这种方法通过神经网络来模拟Q函数,并优化目标以使总回报最大化。与传统的Q-learning相比,基于价值函数的深度强化学习能够更好地处理复杂的推荐场景,提高推荐效果。
另一方面,深度策略梯度算法作为强化学习中的一种方法,也被应用于推荐系统的模型优化中。该算法通过训练模型参数来优化推荐策略,并解决了在推荐过程中无法直接使用梯度下降法的问题。此外,基于树的策略梯度算法和基于多智能体的强化学习框架等方法也为推荐系统的进一步发展提供了新的思路和可能性。
总的来说,基于深度强化学习的推荐系统是推荐系统领域的一个新兴研究方向,具有巨大的应用潜力和发展前景。随着深度学习和强化学习技术的不断进步,相信基于深度强化学习的推荐系统将为用户提供更加个性化、准确和丰富的推荐服务,成为推动信息时代发展的重要推动力量。
三、课题研究
研究内容:深入理解机器学习设计过程
研究现有课程推荐系统的性能优劣
深入学习RNN、DQN、LSTM等算法
使用Python进行项目开发
学习使用Scikit-learn库
学习使用Pytorch库
利用检测损失率进行算法的不断优化
研究方法:数据采集:爬虫、API获取用户行为数据
特征工程:提取用户、课程特征
模型设计:RNN、DQN
实验评估:通过离线评估
预期效果 根据学生的兴趣、学习历史和偏好提供定制化的课程推荐,提高学生对课程的匹配度和满意度,增强学习动力和积极性,促进个性化学习路径的形成。
四、任务计划
序号
设计(论文)各阶段名称
日期(教学周)
1
开发环境评估和搭建
2月 26日- 3月 3日(第1周)
2
数据获取及分析
3月4 日- 3月 10日(第2周)
3
数据预处理
3月 11日- 3月 17日(第3周)
4
特征工程
3月 18日- 3月 24日(第4周)
💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹
💥个人主页:大耳朵土土垚的博客
💥 所属专栏:数据结构
这里将会不定期更新有关数据结构的内容,希望大家多多点赞关注收藏💖💖
目录 💞💞 前言1.建堆的方法2.堆向上调整算法建堆及时间复杂度✨堆向上调整算法✨使用堆向上调整算法建堆✨时间复杂度计算 3.筛选法建堆及时间复杂度✨堆向下调整算法✨使用堆向下调整算法建堆✨时间复杂度计算 4.结语 1.建堆的方法 给你一个顺序表或数组(一串数据),通常来说建堆有两种方法一种堆向上调整算法,一种堆向下调整算法建堆也就是筛选法建堆。
筛选法建堆是一种快速建堆的方法,它是在堆排序算法中使用的。这种方法的基本思想是通过不断筛选节点,如果建大堆就将大的节点向上筛选,小的节点向下筛选,小堆就反之,最终得到一个有序的堆。
下面将以将数组int arr[] = {1,8,9,5,3,2}建成一个小堆为例介绍两种方法建堆
2.堆向上调整算法建堆及时间复杂度 ✨堆向上调整算法 //向上调整算法 void AdjustUp( int* arr,int child) { //找到双亲节点 int parent = (child - 1) / 2; //向上调整 while (child > 0) { //如果父节点大于子节点就交换 if (arr[parent] > arr[child]) { Swap(&arr[parent], &arr[child]); child = parent; parent = (child - 1) / 2; } else break; } } 因为我们建的是小堆所以父节点肯定是要小于子节点的,所以当遇到父节点大于孩子节点就交换,相应的如果建的是大堆那么父节点小于孩子节点就交换
免责声明 本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关。
目录 免责声明前言一、环境配置1.1 靶场信息1.2 靶场配置 二、信息收集2.1 主机发现2.1.1 netdiscover2.1.2 nmap主机扫描2.1.3 arp-scan主机扫描 2.2 端口扫描2.2.1 masscan扫描2.2.2 nmap扫描 2.3 指纹识别2.4 目录扫描2.4.1 dirb目录扫描2.4.2 dirsearch目录扫描 2.5 漏洞切入点2.5.1 访问登录页2.5.2 访问dev页2.5.3 访问wordpress页2.5.4 poc扫描 三、渗透测试3.1 wfuzz和LFI3.1.1 wfuzz爆破参数3.1.2 LFI3.1.2.1 file参数3.1.2.2 secrettier360参数3.1.2.2.1 secrettier360=3.1.2.2.2 secrettier360=FUZZ3.1.2.2.3 secrettier360=dev3.1.2.2.4 secrettier360=/etc/passwd3.1.2.2.5 secrettier360=/home/saket/password.txt 3.2 WordPress漏洞3.2.1 列举用户名3.2.1.1 cmseek扫描3.2.1.2 wpscan扫描 3.2.2 登录管理页3.2.3 msfconsole3.2.3.1 msfvenom生成反弹shell3.2.3.2 msf监听4567端口3.2.3.3 访问测试 3.3 Linux内核漏洞提权3.3.1 漏洞查找3.3.2 复制poc3.3.3 编译poc文件3.3.4 上传编译poc3.3.5 执行编译poc3.3.5.1 目录切换3.3.5.2 赋予可执行权限3.3.5.3 执行编译文件 渗透总结参考文章 前言 今日测试内容渗透prime:1靶机:
Vulnhub是一个提供各种漏洞环境的靶场平台,大部分环境是做好的虚拟机镜像文件,镜像预先设计了多种漏洞。本文介绍prime:1靶机渗透测试,内容包括主机扫描(nmap\netdiscover)、端口扫描(nmap\masscan)、目录扫描(dirb\dirsearch)、wpscan、msf、netcat、反弹shell、linux内核提权等内容。
Description
Back to the Top
This machine is designed for those one who is trying to prepare for OSCP or OSCP-Exam.
一、Vue 1. 简介 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的 JavaScript 框架
它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型
由个人维护:尤雨溪,华人
官网 Vue.js - 渐进式 JavaScript 框架 | Vue.js
2. 基本使用 Vue的页面使用方式:
在页面中直接引入Vue核心库的js文件
该方式只是为了让开发者在学习Vue语法时可以快速掌握
实际上Vue并不适合直接使用 页面方式进行语法定义,更推荐使用模块化方式
使用步骤:
获取Vue核心库的js文件
通过地址 https://cdn.jsdelivr.net/npm/vue/dist/vue.js 下载
在页面中引入Vue
<script src="js/vue.js"></script> 创建Vue实例并应用
3. 调试工具 安装vue-devtools插件,便于在Chrome浏览器中调试vue
步骤:
打开Chrome浏览器的扩展程序——>更多扩展程序
将vue_devtools_6.5.0.crx拖放到扩展程序中
在VSCode中安装Vue相关插件:Vue Language Features、vue-helper
二、基本交互 1. 插值表达式 语法: {{ }} 由两对大括号组成,称为“Mustache”语法
作用:用于在页面标签中插入值,进行数据的绑定显示,且当值发生变化时标签会重新渲染加载,称为响应式特性,即数据状态同步操作
用法:<标签>{{ Vue对象数据仓库变量|JS表达式|JS内置对象 }}</标签> 只能用在标签中间的内容位置
2. 指令 2.1 简介 指令 (Directives)是用来扩展html标签的功能,以v-作为前缀
2.2 常用指令 指令取值作用v-textstring更新元素的textContentv-htmlstring更新元素的innerHTMLv-onFunction | Object | Array | 行内表达式绑定事件监听器,用于事件绑定v-showany根据表达式的boolean结果,切换元素的 display CSS 属性,控制元素的显示隐藏v-if、v-else-if、v-elseany根据表达式的boolean结果,执行元素的创建和删除操作,控制元素的显示隐藏v-forArray | Object | number | string基于数据多次渲染元素或模板块,用于循环数据v-bindany动态的为标签绑定属性,用于属性绑定 3.
今天启动一台设备,触摸屏一直显示机器人报警(翻译过后为电池电量低),更换电池后关机重启后也不能消除,所以打开示教器,下面就来说说怎么解决此项问题(可以参考官方发的手册,已手册为主)。
一,设备 下面来看看机械手的照片与示教器的照片
四轴机械手(六轴机器人有可以)
示教器图片 ENC Batierw low 报警内容显示
二,操作方法 一,编码器复位 操作步骤图说明
示教器操作示范(将控制器打到手动) 一,先将示教器打到手动(点击UTILITY功能键,进入下图界面)
二,点击键盘NEXT(进入功能选项下一个界面)
三,进入该界面后,选择ENC(相应键盘选择F5键)
四,进入下面界面后,查看那一个轴不是0000, 五,上下左右键,选择到对应的位置上,点击RESET复位键,进行复位。
六,对应的选择EXE进行确定复位。
七,手动走一下机器人点位(应该是有差距,需要机器人多旋转数据清零,当清零后,点位还是存在偏差,但是小了许多,还是需要慢慢修改)
机器人多旋转数据清零(复位完后,必须清零,重新调点位) 示教器的手动控制 将控制器·选择手动后,按住ERROR报警界面,选择F3RESET复位键,后报警消失,按住示教器后面的使能键,就可以对机械手进行手动控制。