微信小程序进阶(1)--自定义组件

自定义组件 1.1 什么是自定义组件 开发文档:https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/ 小程序中常常会有些通用的交互模块,比如:下拉选择列表、搜索框、日期选择器等;这些界面交互模块可能会在多个页面中用到,逻辑也相对独立;然而,用传统的小程序开发方法来实现非常繁琐,小程序基础库提供了让开发自已创建界面组件的特性,称之为“自定义组件“。通过这个特性,开发者就能够将这样的交互模块抽象成界面组件,使用界面代码组织变得非常灵活。 1.2 使用场景 多个页面用到同样的东西 页面功能很多、很复杂、使用组件来拆分逻辑 1.3 自定义组件组成 json 文件:用于放置一些最基本的组件配置wxml 文件:组件模板wxss 文件:组件的样式(无法直接使用全局样式,需要通过@import导入)js 文件:组件的 js 代码,承载组件的主要逻辑 1.4 创建自定义组件 1.4.1 新建自定义组件文件 在根目录新建 components 目录,然后右键新建自定义组件目录 1.4.2 配置组件json 文件 1.4.3 配置组件js 文件 1.4.4 在SearchInput.wxml 文件中写入内容 <view class="search_input"> <navigator url="/pages/logs/logs" open-type="navigate"> 搜索 </navigator> </view> 1.4.5 在SearchInput.wxss 配置样式 .search_input { height: 90rpx; padding: 10rpx; background-color: #096; } .search_input navigator { height: 100%; display: flex; justify-content: center; align-items: center; background-color: #fff; border-radius: 15rpx; color: #666; } 1.

【动态规划】零基础解决路径问题(C++)

目录 62.路径问题 解法(动态规划): 1. 状态表⽰: 2. 状态转移⽅程: 3. 初始化: 4. 填表顺序: 5. 返回值: 不同路径2.0 解法(动态规划): 1. 状态表⽰: 2. 状态转移: 3. 初始化: 4. 填表顺序: 5. 返回值: 代码 剑指Offer47.礼物的最⼤价值 方程; 代码: 931.下降路径最小和 代码: 64.最小路径和 【困难题】 174.地下城游戏(视频讲解) 总结: 62.路径问题 解法(动态规划): 算法思路: 1. 状态表⽰: 对于这种「路径类」的问题,我们的状态表⽰⼀般有两种形式: i. [i, j] 位置出发,巴拉巴拉;ii. 从起始位置出发,到达[i, j] 位置,巴拉巴拉。 这⾥选择第⼆种定义状态表⽰的⽅式: dp[i][j] 表⽰:⾛到[i, j] 位置处,⼀共有多少种⽅式。 2. 状态转移⽅程: 简单分析⼀下。如果dp[i][j] 表⽰到达[i, j] 位置的⽅法数,那么到达[i, j] 位置之 前的⼀⼩步,有两种情况: i. 从[i, j] 位置的上⽅( [i - 1, j] 的位置)向下⾛⼀步,转移到[i, j] 位置;ii.

如何解决IT运维不给力

运维不给力,是很多企业IT部门面临的头疼问题,其背后的原因错综复杂,可能涉及到资金投入不足、团队积极性不高、或是缺乏科学的运维管理体系。要解决这些问题,引入IT运维管理和利用先进的ITILDESK平台,可以作为破局的关键。 资金高效利用 在预算有限的情况下,首先要确保资金用在刀刃上。通过ITILDESK的工单系统和自动化流程,可以有效减少手动操作,降低错误率,提高运维效率,相当于用技术手段代替人力,间接节省了成本。同时,集中资源投入到核心业务系统的维护和关键性能指标(KPIs)的优化上,确保有限的资金产生最大的效益。 提升团队积极性 ITILDESK不仅是一个工单处理工具,更是团队协作和绩效管理的平台。通过设定明确的绩效指标,如响应时间、问题解决速度、客户满意度等,并在系统中公开透明地展示,让每位工程师的贡献可视化。结合正向激励机制,如优秀工程师表彰、晋升机会等,增强团队成员的成就感和归属感,从而激发工作积极性。 构建科学运维体系 IITILDESK基于ITIL4框架,提供了从服务设计、转换、交付到改进的全面解决方案。首先,通过服务台功能,确保用户需求得到及时响应;接着,利用变更管理、问题管理和配置管理等模块,规范运维操作,减少无序和重复工作。更重要的是,ITILDESK的持续改进机制鼓励团队不断回顾服务过程,识别并优化瓶颈,形成良性循环。 强化知识管理与技能培训 ITILDESK的知识库不仅存储了解决方案和最佳实践,还鼓励工程师分享经验,形成知识共享的文化。通过内置的学习资源,工程师可以随时充电,提升技能水平,减少因技术落后导致的运维效率低下。这不仅解决了“人有了,钱也有了,但体系不科学”的问题,还促进了团队的持续发展。 用户满意度与沟通优化 通ITILDESK的用户自助服务台,用户可以轻松提交请求、查询状态,减少不必要的沟通成本。同时,系统自动收集用户满意度反馈,用于持续改进服务。ITILDESK的沟通管理模块,加强团队内部和跨部门协作,确保问题解决的高效沟通。 利用ITILDESK结合ITIL4框架,企业不仅能够针对运维不给力的根源问题逐个击破,还能建立起一套高效、智能、用户导向的运维体系。从资源优化、流程标准化、团队建设到自动化智能化,每一步都是向更高运维效率迈进的关键步伐,最终实现实现从“被动救火”到“主动预防”的转变,让IT运维成为企业发展的坚实后盾。

代码随想录算法训练营Day52 | 300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组 | Python | 个人记录向

注:Day51休息。 本文目录 300.最长递增子序列做题看文章 674. 最长连续递增序列做题看文章 718. 最长重复子数组做题看文章 以往忽略的知识点小结个人体会 300.最长递增子序列 代码随想录:300.最长递增子序列 Leetcode:300.最长递增子序列 做题 无思路。 看文章 动规五部曲: dp[i]的定义。dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度。状态转移方程。if (nums[i] > nums[j]) dp[i] = max(dp[i], dp[j] + 1)。dp[i]的初始化。至少为1。确定遍历顺序。遍历i的循环在外层,遍历j则在内层。举例推导dp数组。 看完思路后自己实现。这里有个特殊点,最后要return max(dp),因为dp数组代表的是以 nums[i] 为结尾的最长递增子序列的长度,故需要返回最大值。 class Solution: def lengthOfLIS(self, nums: List[int]) -> int: size = len(nums) dp = [1] * size for i in range(size): for j in range(i): if nums[i] > nums[j]: dp[i] = max(dp[i], dp[j] + 1) return max(dp) 时间复杂度: O(n^2) 空间复杂度: O(n)

“AI 教父”Hinton 对话“神童创业家”:只要增长规模,人工智能的推理和创造力就能超越人类...

文 | 王启隆 出品丨AI 科技大本营(ID:rgznai100) 近日,27 岁天才创始人 Joel Hellermark 分享了自己和“AI 教父” Geoffery Hinton 的最新采访。Hinton 在对话中回忆自己的人工智能生涯,谈论神经网络、Scaling Law、多模态学习、模拟计算和人工智能伦理安全等多个话题,并聊了聊他的得意门生 Ilya Sutskever(前段时间离职的 OpenAI 首席科学家)。 Geoffery Hinton 受访者非常“重量级”,但采访者其实也不容小觑。Joel Hellermark 自幼在东京长大,13 岁开始编码,14 岁创立了一家视频推荐公司。在一家数字广告公司工作后,他于 19 岁创办了人工智能研究实验室 Sana(当时还不叫 Sana AI,而是叫 Sana Labs),并在 2023 年的时候筹齐 8000 万美元融资。 Joel Hellermark Hellermark 坚信学习的力量,所以他没有选择上大学,而是通过斯坦福公开的课程学习如何编码。他创办 Sana 公司的目标就是四个字:“改变教育”。Hellermark 希望通过培养员工学习和访问信息的能力,来提高员工的工作效率。 话不多说,以下是采访全文: 人工智能生涯:从研究大脑开始 Hellermark:你是怎么开始编程的? Hinton:我从英国刚到卡内基梅隆大学的时候。 1982 年,Hinton 前往卡内基梅隆大学(Carnegie Mellon University) 他在那担任计算机科学系教授,直至 1987 年 我在英国的研究单位时,每晚六点钟大家都会去酒吧喝一杯。 但到了卡内基梅隆几周后,我还没交到多少朋友。所以在某个周六晚上,我发现自己不知道该做什么,于是决定去实验室编写一些程序:因为实验室里有一台 Lisp 机器,家里没有。 Lisp 机器 所以,我在那个周六晚上的九点左右前往卡内基梅隆的实验室,里面人声鼎沸,所有学生都在那里研究未来,他们相信自己接下来要做的事情将会改变计算机科学的进程。这与我在英国看到的情况截然不同,令我耳目一新。 Hellermark:能不能把我们带回一切的起点 —— 剑桥时期的 Geoffrey( ~ 1970 年),试图理解人脑。脑研究是什么样的体验?

这方法真牛B!论文降重从81%直降1.9%

目录 一、万字论文,从0到1,只需1小时二、获取途径三、论文从81%降到1.9%四、内容是别人的,话是自己的五、AI工具 --> 中文论文降重六、论文降重小技巧 一、万字论文,从0到1,只需1小时 通过OpenAI5月14日1点发布的最新大模型ChatGPT4o: 1小时即可完成万字论文的编写通过GPT定制的降重大模型“中文论文降重”,2小时即可完成一篇优质的、查重率较低的万字论文。 在ChatGPT4o对话框中输入:写一个Spring Boot+Vue实现的车位管理系统的论文大纲,并对其具体章节进行详细描述。 1小时即可完成一份1万字论文的编写。 二、获取途径 现在商家有活动,仅仅需要24.9!!!! 现在有优惠: 👉 周卡优惠码是1024,会优惠5元(推荐人写:1024) 👉 半月卡、月卡、季卡优惠码是102410,会优惠10元。(推荐人写:102410) 邮箱写自己的邮箱!!!! 👉获取途径,网址在下面了:ChatGPT4o,也可以私信哪吒,备注CSDN AI 三、论文从81%降到1.9% 说起论文降重,是很多马上要毕业了的学生的一大难题。 写论文的时候,免不了要引经据典,要引用名人的话,要引用名人的故事,要使用公式,要把定义写明白,这些内容就决定了你的论文有着居高不下的重复率,甚至是后期无论如何怎么修改,都无法撼动改变一点点这个恼人的数字。 于是论文降重就变成毕业的临门一脚的高门槛。而且现在很多查重网站有相当高额的收费,也许有些学校会提供你一次或两次免费的降重次数,但是你能保证靠自己在次数以内达到学校的指标吗? 所以我们今天要讲的就是,我是如何将自己的论文从81%降到1.9%的。 四、内容是别人的,话是自己的 其实降重的关键在哪里呢,无论是知网还是维普、或者其他网站,都免不了一个规律,每十几二十个字里有重复的字数超过多少字算重复。 那么那些重复率自己降不下来的人对此规律有什么误解,才导致怎么改也免不了被标红呢?我举例说明。 **原文:**Java在计算机领域中占据重要地位,广泛应用于企业级开发、移动应用、Web服务和大数据处理等多个领域。 一般人怎么改呢? Java在计算机行业中具有显著的影响力,被广泛用于企业级开发、移动应用、Web服务和大数据处理等各个领域。 你以为自己改了,其实在系统眼里,没有任何区别。 那么我所注意的点在哪里呢? 1、改写不是交换主谓宾定状补的顺序。你喜欢我,改写成我被你喜欢,重复字数并没有改变。 所以要对重复的句子进行重新注释,你喜欢我。改成:你被我的人格魅力所吸引,不断向我靠近。是不是更好呢?喜欢,即被吸引,是因为人格魅力,结果就是不断靠近。 2、定义难以改写。定义确实让人难以下手,但并不是毫无办法,此时需要百度或凭自己的知识将其扩充,与1相比有相似但不同,本质不同在于: 是改句子不变意思是改句子加其他意思,删掉原来改不动的定义。 总的来说,论文降重真的并不难,希望大家都能理解查重网站的规律,把握规律,掌握技巧,降重就是最简单的。 五、AI工具 --> 中文论文降重 搜索GPT —> 论文降重 —> 中文论文降重。 直接通过论文降重不用愁,10个顶级的论文降重指令助你起飞~即可对现有论文进行降重。 举例结束,实战不能照本宣科,灵活是关键。因为你要知道,论文,老师是看你给他发的第一稿,而不是查重前的第一稿,你即使内容修改,但是愿意还在,就没有问题。 以下是实战: 原文:随着城市化进程的加快,城市中的车辆数量急剧增加,导致车位资源日益紧张。传统的车位管理方式,主要依靠人工管理和固定监控,存在着效率低下、信息滞后、管理难度大等诸多问题。为了解决这些问题,本文提出并设计了一种基于Spring Boot和Vue的车位管理系统。该系统采用前后端分离的架构,通过微服务技术实现模块化管理,旨在提高车位利用率,优化用户停车体验。 修改后:随着城市化的快速推进,城市车辆数量显著上升,致使车位资源变得愈加紧缺。传统的车位管理方式主要依赖人工和固定监控,效率低、信息滞后且管理难度大,存在诸多问题。为应对这些挑战,本文设计并提出了一种基于Spring Boot和Vue的车位管理系统。该系统采用前后端分离架构,并通过微服务技术实现模块化管理,旨在提高车位使用效率,优化用户的停车体验。 论文专属大模型(中文论文降重)给出修改内容分析: 原文:在智能化车位管理系统的开发中,选用合适的技术框架是至关重要的。Spring Boot作为一种轻量级的Java开发框架,具有以下优势:快速开发:Spring Boot提供了丰富的自动配置和内置功能,能够大幅度简化开发流程,加快系统的开发速度。高效性能:Spring Boot具有良好的性能表现,能够支持高并发和大数据量的处理需求。易于集成:Spring Boot能够与其他技术框架和工具(如数据库、消息队列、微服务架构等)无缝集成,便于系统的扩展和维护。 修改后: 六、论文降重小技巧 1、增词法。知网检测是以连续13个字相同为重复,既然连续13个相同的字视为抄袭,那么,在每个词前面加修饰语,如形容词或者数量等就可以实现“原创性”。 2、同义词替代法。如将“损坏”改成“破坏”,将“开始”改为“肇始”,将“研究”改为“调查”。同义词替代后,最好既要保持句子的通畅性,又要表达出句子的原意。切不可为降重而降重。 3、语态法。常见的将把子句修改为被子句,主动语态修改为被动语态,定语前置等。如:满意度,即满意的程度。它是个人的感觉,来源于被访者对某事物的实际效果与期望值的对比。 4、删除法。遇到大段标红的文字,尽情删。不过,删除法的前提是你的论文字数足够多,假设学校的要求是4万字及以上,那么,写了五万字的你就可以通过这一方法降重。 5、合理引用。对于引用的内容,即便是做了正确的标注也会计入重合率的,所以我们即便是引用的时候也最好将引用的部分转换成自己的语言重新描述。 6、利用表格。系统现在对于表格的检测还不完善,在表格中重合的字数是不计入到总的重合率中的。所以,不能转化的内容,可以做成表格的形式出现在论文中。 7、改变语序。如果大段引用某篇文献又不知道如何修改引用的内容,将引用的段落中句子的顺序打乱,也会部分降低重合率,最好打乱的过程中稍作修改效果会更好。但是这样的修改不可能将重合的文字全部消除。 8、对于文献的摘抄不要大段的选择一篇文献。有些同学可能很奇怪,自己在论文中明明引用或者抄写了其他文献的段落或句子,为什么没有检测出来?这里告诉同学们一个修改的方法,就是对段落抄写千万不要选一篇文章来引用,尽可能多的选择多篇文献,一篇截取几句,这样是不会被检测出来的。

Git 学习笔记

像 git commit 分支名字 或 git merge 分支名字这个命令后面最好加上 -m "消息",如果你不加上 -m "消息"的话,它会打开一个程序让你去加上消息,这个程序还是在控制台里面,只不过是 Linux 里面一个叫做 VIM 的程序,它类似于 Windows 里面的记事本软件。 VIM 的操作: 按 i 进入插入模式,比如可以写入“修改了 a.txt”。 按 Esc 退出插入模式。 按 Shift+ZZ 退出 VIM 编辑器。 References: Unity我爱游戏开发. (January 8, 2023). GIT版本管理工具轻松入门 | TortoiseGit,Git命令行的使用 | 项目管理,版本控制教程,码云Gitee,GitHub创建项目 | 含详细笔记 [Video]. Bilibili. https://www.bilibili.com/video/BV1h24y1e7jv/?t=318

基于 Spring Boot 博客系统开发(十一)

基于 Spring Boot 博客系统开发(十一) 本系统是简易的个人博客系统开发,为了更加熟练地掌握 SprIng Boot 框架及相关技术的使用。🌿🌿🌿 基于 Spring Boot 博客系统开发(十)👈👈 定时邮件发送实现 邮件服务依赖 <!-- mail邮件服务启动器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> 邮件服务配置 # 邮箱邮件发送服务配置 spring.mail.host=smtp.163.com # 配置个人邮件账户和密码(密码是加密后的授权码) spring.mail.username=xxxxxx@163.com spring.mail.password=xxxxxx 163邮箱授权码获取: 登录163邮箱账号,进入设置开启 IMAP/SMTP服务和POP3/SMTP服务,然后点击新增授权码获取授权码。 邮件服务工具类 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.stereotype.Component; @Component public class MailUtils { @Autowired private JavaMailSenderImpl mailSender; @Value("${spring.mail.username}") private String mailfrom; // 发送简单邮件 public void sendSimpleEmail(String mailto, String title, String content) { // 定制邮件发送内容 SimpleMailMessage message = new SimpleMailMessage(); message.

关于我转生从零开始学C++这件事:升级Lv.25

❀❀❀ 文章由@不准备秃的大伟原创 ❀❀❀ ♪♪♪ 若有转载,请联系博主哦~ ♪♪♪ ❤❤❤ 致力学好编程的宝藏博主,代码兴国!❤❤❤ OK了老铁们,又是一个周末,大伟又来继续给大家更新我们的C++的内容了。那么根据上一篇博客的,今天我们要学的是STL的第一节课:string。 首先我们来看一看为什么学习string类? C++学习string类的意义: 在C语言中,字符串是以'\0'结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数, 但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可 能还会越界访问。 此外,在OJ中,有关字符串的题目基本以string类的形式出现,而且在常规工作中,为了简单、方便、快捷,基本 都使用string类,很少有人去使用C库中的字符串操作函数。 标准库中的string类: string类(了解):string类的文本介绍 1. 字符串是表示字符序列的类 2. 标准的字符串类提供了对此类对象的支持,其接口类似于标准字符容器的接口,但添加了专门用于操作 单字节字符字符串的设计特性。 3. string类是使用char(即作为它的字符类型,使用它的默认char_traits和分配器类型(关于模板的更多信 息,请参阅basic_string)。 4. string类是basic_string模板类的一个实例,它使用char来实例化basic_string模板类,并用char_traits 和allocator作为basic_string的默认参数(根于更多的模板信息请参考basic_string)。 5. 注意,这个类独立于所使用的编码来处理字节:如果用来处理多字节或变长字符(如UTF-8)的序列,这个 类的所有成员(如长度或大小)以及它的迭代器,将仍然按照字节(而不是实际编码的字符)来操作。 总结: 1. string是表示字符串的字符串类 2. 该类的接口与常规容器的接口基本相同,再添加了一些专门用来操作string的常规操作。 3. string在底层实际是:basic_string模板类的别名,typedef basic_string string; 4. 不能操作多字节或者变长字符的序列。 tip:在使用string类时,必须包含#include头文件以及using namespace std; string类的常用接口说明(注意下面我只讲解最常用的接口): 1. string类对象的常见构造 以下为一些经常用的操作的实例: void Teststring() { string s1; // 构造空的string类对象s1 string s2("hello bit"); // 用C格式字符串构造string类对象s2 string s3(s2); // 拷贝构造s3 } string类对象的容量操作: 注意:

鸿蒙ArkTS声明式开发:跨平台支持列表【触摸事件】

触摸事件 当手指在组件上按下、滑动、抬起时触发。 说明: 开发前请熟悉鸿蒙开发指导文档: gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 事件 名称是否冒泡功能描述onTouch(event: (event?: TouchEvent) => void)是手指触摸动作触发该回调,event返回值见[TouchEvent]介绍。 TouchEvent对象说明 名称类型描述type[TouchType]触摸事件的类型。touchesArray<[TouchObject]>全部手指信息。changedTouchesArray<[TouchObject]>当前发生变化的手指信息。stopPropagation() => void阻塞事件冒泡。timestamp8+number事件时间戳,触发事件时距离系统启动的时间间隔。 例如,当系统启动时间为2023/10/12 11:33, 在2023/10/12 11:34时触发触摸事件,时间戳返回的值为60,000,000,000ns。 单位:纳秒target8+[EventTarget]触发事件的元素对象显示区域。source8+[SourceType]事件输入设备。getHistoricalPoints10+Array<[HistoricalPoint]>获取当前帧所有的历史点。不同设备每帧的触摸事件频率不同,当前帧所有的触摸事件被称为历史点。 TouchObject对象说明 名称类型描述type[TouchType]触摸事件的类型。idnumber手指唯一标识符。xnumber触摸点相对于被触摸元素左上角的X坐标。ynumber触摸点相对于被触摸元素左上角的Y坐标。windowX10+number触摸点相对于应用窗口左上角的X坐标。windowY10+number触摸点相对于应用窗口左上角的Y坐标。displayX10+number触摸点相对于应用屏幕左上角的X坐标。displayY10+number触摸点相对于应用屏幕左上角的Y坐标。 HistoricalPoint10+对象说明 名称类型描述 HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿touchObject[TouchObject]历史点对应触摸事件的基础信息。sizenumber历史点对应触摸事件的手指与屏幕的触摸区域大小。 默认值:0forcenumber历史点对应触摸事件的压力大小。 默认值:0 取值范围:[0,1],压力越大值越大。 此接口根据硬件设备不同,支持情况不同。当前只支持Tablet。timestampnumber历史点对应触摸事件的时间戳。触发事件时距离系统启动的时间间隔。 单位:毫秒 示例 // xxx.ets @Entry @Component struct TouchExample { @State text: string = '' @State eventType: string = '' build() { Column() { Button('Touch').height(40).width(100) .onTouch((event?: TouchEvent) => { if(event){ if (event.type === TouchType.Down) { this.eventType = 'Down' } if (event.

Linux系统如何通过编译方式安装python3.11.3

1.切换到/data 目录 cd /data 2.下载python源码Python-3.11.3.tgz wget https://www.python.org/ftp/python/3.11.3/Python-3.11.3.tgz tar -xzf Python-3.11.0.tgz cd Python-3.11.3 3.配置python的安装路径 和 执行openssl的路径 ./configure --prefix=/usr/local/python3.11 --with-openssl=/usr/local/openssl-1.1.1n 4.编辑安装 make sudo make altinstall 使用 make altinstall 而不是 make install 来避免覆盖系统默认的 Python 5.验证安装是否成功 python3.11 -V 输出如下信息:则说明安装成功 [root@iZbp14j2amyqhdxg1o5swqZ data]# python3.11 -V Python 3.11.3 6.使用python3.11 的pip 进行python包的安装 python3.11 -m pip intall 要安装的包

Qt 概述

Qt 背景介绍 什么是 Qt Qt 是⼀个 跨平台的 C++ 图形⽤⼾界⾯应⽤程序框架 。它为应⽤程序开发者提供了建⽴艺术级图形界⾯所需的所有功能。它是完全⾯向对象的,很容易扩展。Qt 为开发者提供了⼀种基于组件的开发模式,开发者可以通过简单的拖拽和组合来实现复杂的应⽤程序,同时也可以使⽤ C++ 语⾔进⾏⾼级开发。 图形⽤⼾界⾯ :指采⽤图形⽅式显⽰的计算机操作⽤⼾界⾯,是计算机与其使⽤者之间的对话接⼝,是计算机系统的重要组成部分。如:Android ⼿机图形⽤⼾界⾯ 和 IOS ⼿机图形⽤⼾界⾯。 Qt 的发展史 1991 年 Qt 最早由奇趣科技开发; 1996 年 进⼊商业领域,它也是⽬前流⾏的 Linux 桌⾯环境 KDE 的基础; 2008 年 奇趣科技被诺基亚公司收购,Qt 成为诺基亚旗下的编程⼯具; 2012 年 Qt ⼜被 Digia 公司收购; 2014 年 4 ⽉ 跨平台的集成开发环境 Qt Creator3.1.0 发布,同年 5 ⽉ 20 ⽇发布了 Qt 5.3 正式版,⾄此 Qt 实现了对 IOS、Android、Embedded 等各平台的全⾯⽀持。 Qt ⽀持的平台 • Windows ‒ XP、Vista、Win7、Win8、Win2008、Win10 • Unix/X11 ‒ Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX、FreeBSD、BSD/OS、和其他很多 X11 平台 • Macintosh ‒ Mac OS X • Embedded ‒ 有帧缓冲⽀持的嵌⼊式 Linux 平台,Windows CE • Android Qt 版本 ⽬前最新的版本是 Qt 6.

零基础学Java第二十三天之网络编程

网络编程 1. 网络编程 实现多台计算机之间实现数据的共享和传递,网络应用程序主要组成为: 网络编程+IO流+多线程 2. 网络编程三要素 网络通讯的模型:请求-响应,客户端-服务端 三要素:IP地址,端口,协议(数据传输的规则) 2.1. IP地址 IP地址:网络中计算机的唯一标识(IP地址是一个32位的二进制数据,为了方便,将一个字节的二进制转换为一个十进制的数据) IP地址的组成:*网络号段+主机段* A类IP地址:第一段号码为网络号码,剩下的三段号码为本地计算机的号码 ----可以配置256256256台主机 B类IP地址:前二段号码为网络号码,剩下的二段号码为本地计算机的号码 C类IP地址:前三段号码为网络号码,剩下的一段号码为本地计算机的号码 补充: 特殊地址: *127.0.0.1* 回环地址,可用于测试本机的网络是否有问题. ping 127.0.0.1 DOS命令 ipconfig:查看本机IP地址 xxx.xxx.xxx.255 广播地址 访问百度(IP和域名–DNS服务器) 一个IP可以对应多个域名,但是一个域名在一个时刻只能对应一个IP 2.2. 端口号 正在运行的程序的标识 A:每个网络程序都会至少有一个逻辑端口 B:用于标识进程的逻辑地址,不同进程的标识不同 C:有效端口:065535,其中01024系统使用或保留端口。 a) 80 b) ftp:23 c) www.baidu.com:80 通过第三方工具可以查看 注意:端口与协议有关:TCP和UDP的端口互不相干,同一个协议的端口不能重复,不同协议的可以重复 TCP:10086 UDP:10086 2.3. 协议 通信规则,就是数据的传输规则 TCP、UDP都是传输层的协议 TCP ​ 建立连接,形成传输数据的通道;在连接中进行大数据量传输;通过三次握手完成连接,是可靠协议;必须建立连接,效率会稍低,例如:打电话 UDP ​ 将数据源和目的封装到数据包中,不需要建立连接;每个数据报的大小在限制在64k;因无连接,是不可靠协议;不需要建立连接,速度快:例如发短信 ;必须建立连接,效率会稍低,例如:打电话 UDP ​ 将数据源和目的封装到数据包中,不需要建立连接;每个数据报的大小在限制在64k;因无连接,是不可靠协议;不需要建立连接,速度快:例如发短信

string OJ题

下面分享一下string做题心得 1. 明白字符串中存储的数字为'0' '8' '9'与0 8 9 完全不同,字符'0'其实在串中存储的是48,要有意识的转化。字符串中如果存数字8,意味着存了BS(退格) 例如1: 算出结果为5,存入使用s+=(5+'0') 例如2:读取数据 int num1 = s[i]-'0' 2. 要熟练运用 s+= 或者 reserve(s1.begin() ,s1.end())或者是s1 = s2与s1.assign(s2)作用相同。 3. 遇到不熟悉的接口一定要去查一查。 下面为ascii表 后面分享了3道oj题 43. 字符串相乘 检验是否是回文串 字符串转整形字符 检验是否是回文串第一题答案 class Solution { public: string addStrings(string num1, string num2) { int carry=0; string s3; int end1=num1.size()-1; int end2=num2.size()-1; while(end1>=0 ||end2>=0) { int x1 = end1 >= 0 ? num1[end1--]-'0' : 0; int x2 = end2 >= 0 ?

【文末附gpt升级方案】前沿人工智能安全承诺:OpenAI、微软、智谱AI等全球16家公司的共同行动

前沿人工智能安全承诺:OpenAI、微软、智谱AI等全球16家公司的共同行动 一、引言 随着人工智能(AI)技术的飞速发展,其在全球范围内的应用日益广泛,从智能家居到自动驾驶,从医疗诊断到金融分析,AI技术已经渗透到人类生活的各个方面。然而,与此同时,AI技术的安全问题也日益凸显,如何确保AI技术的安全、可靠和可控,已成为全球范围内亟待解决的问题。为此,OpenAI、微软、智谱AI等全球16家公司共同签署了前沿人工智能安全承诺,旨在推动全球在人工智能安全方面的合作,确保人工智能的安全发展。 二、背景与现状 近年来,人工智能技术的快速发展带来了前所未有的机遇和挑战。一方面,AI技术的应用极大地提高了生产效率、降低了成本,为人类社会带来了巨大的福祉;另一方面,AI技术的安全问题也日益凸显,如数据泄露、隐私侵犯、算法偏见等,这些问题不仅影响了AI技术的可信度和可靠性,也引发了广泛的社会关注和担忧。 在此背景下,全球范围内对AI技术的安全问题给予了前所未有的关注。各国政府、企业、学者和公众纷纷呼吁加强AI技术的安全监管和治理。OpenAI、微软、智谱AI等全球16家公司的共同行动,正是在这一背景下应运而生的。 三、前沿人工智能安全承诺的签署 (一)签署背景 近年来,随着AI技术的广泛应用,其安全问题也日益凸显。OpenAI联合创始人、首席科学家Ilya Sutskever与OpenAI超级对齐团队共同领导人Jan Leike相继离开OpenAI,Leike甚至在社交媒体上发表了一系列帖子,批评OpenAI及其领导层忽视安全而偏爱光鲜亮丽的产品。这一事件在业界引起了广泛关注,也凸显了当前AI安全问题的严峻性。 与此同时,图灵奖得主Yoshua Bengio、Geoffrey Hinton和姚期智联合国内外数十位业内专家和学者,在权威科学期刊Science上刊文,呼吁世界各国领导人针对AI风险采取更有力的行动,并警告说,“近六个月所取得的进展还不够”。他们认为,AI的无节制发展很有可能最终导致生命和生物圈的大规模损失,以及人类的边缘化或灭绝。这一观点进一步强调了AI安全问题的严重性和紧迫性。 (二)签署过程 在上述背景下,OpenAI、微软、智谱AI等全球16家公司共同签署了前沿人工智能安全承诺。这一承诺是在第二届人工智能首尔峰会上达成的,峰会以“安全、创新、包容”为议题,就进一步保障AI安全性、推进AI可持续发展等方案进行了深入讨论。 在签署过程中,各家公司均表示将积极履行承诺,确保前沿人工智能安全的负责任治理结构和透明度;基于人工智能安全框架,负责任地说明将如何衡量前沿人工智能模型的风险;建立前沿人工智能安全模型风险缓解机制的明确流程等。这些承诺的签署,标志着全球在人工智能安全方面的合作迈出了重要一步。 四、前沿人工智能安全承诺的内容与意义 (一)承诺内容 前沿人工智能安全承诺的内容主要包括以下几个方面: 确保前沿人工智能安全的负责任治理结构和透明度。各公司将建立完善的治理机制,确保AI技术的研发和应用符合法律法规和伦理规范,同时加强与其他国家和地区的合作与交流,共同推动全球AI安全治理体系的建设。基于人工智能安全框架,负责任地说明将如何衡量前沿人工智能模型的风险。各公司将采用先进的安全框架和评估方法,对AI模型进行全面的风险评估和测试,确保AI技术的安全性和可靠性。建立前沿人工智能安全模型风险缓解机制的明确流程。各公司将建立完善的风险缓解机制,对可能出现的风险进行及时预警和应对,确保AI技术的稳定运行和可控性。 (二)承诺意义 前沿人工智能安全承诺的签署具有重要意义。首先,它体现了全球范围内对AI安全问题的共同关注和重视,有助于推动全球在AI安全方面的合作与交流。其次,它有助于提升AI技术的安全性和可靠性,增强公众对AI技术的信任度和接受度。最后,它有助于推动AI技术的可持续发展,为人类社会的繁荣和发展做出更大的贡献。 五、结论与展望 前沿人工智能安全承诺的签署是全球范围内对AI安全问题共同关注和重视的体现,也是推动全球在AI安全方面合作与交流的重要一步。未来,我们应该继续加强AI技术的安全监管和治理,提升AI技术的安全性和可靠性,推动AI技术的可持续发展。同时,我们也应该加强国际合作与交流,共同应对AI技术带来的挑战和机遇,为人类社会的繁荣和发展做出更大的贡献。 精彩文章合辑 基于AARRR模型的录音笔在电商平台进行推广的建议-CSDN博客 【附gpt4.0升级秘笈】AutoCoder进化:本地Rag知识库引领智能编码新时代-CSDN博客 【附gpt4.0升级秘笈】OpenAI 重磅官宣免登录用 ChatGPT_openai 4.0 免费-CSDN博客 【附升级gpt4.0方案】探索人工智能在医疗领域的革命-CSDN博客 【文末 附 gpt4.0升级秘笈】超越Sora极限,120秒超长AI视频模型诞生-CSDN博客 【附gpt4.0升级秘笈】身为IT人,你为何一直在“高强度的工作节奏”?-CSDN博客 【文末附gpt升级4.0方案】英特尔AI PC的局限性是什么-CSDN博客 【文末附gpt升级4.0方案】FastGPT详解_fastgpt 文件处理模型-CSDN博客 大模型“说胡话”现象辨析_为什么大语言模型会胡说-CSDN博客 英伟达掀起AI摩尔时代浪潮,Blackwell GPU引领新篇章-CSDN博客 如何订阅Midjourney_midjourney付费方式-CSDN博客 【文末附gpt升级方案】

生成式AI导论2024-李宏毅

生成式AI导论2024-李宏毅 第0讲: 课程说明第1讲:生成式AI是什么第2講:今日的生成式人工智慧厲害在哪裡?從「工具」變為「工具人」 第0讲: 课程说明 生成式AI的入门课程 第1讲:生成式AI是什么 生成式人工智慧是什么? 当你用类神经网络(模型)来表达这上万个参数的时候,你做的事情就是深度学习。 第2講:今日的生成式人工智慧厲害在哪裡?從「工具」變為「工具人」 强大的LLM,带来了一些现实中全新的议题:

springboot项目打包

在项目中添加如下配置: <!-- 将项目打成jar包 --> <packaging>jar</packaging> <!-- 主动声明插件 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.4.1</version> <!-- 对插件进行个性化配置 --> <configuration> <archive> <manifest> <!-- 将入口类添加到 MANIFEST.MF 中 --> <mainClass>com.buba.SpringbootWebApplication</mainClass> </manifest> </archive> </configuration> </plugin>

【深度学习基础】NumPy数组库的使用

目录 写在开头 一、数组的类型与维度 数组的类型 数组的维度 二、数组的创建 递增数组 同值数组 随机数数组 三、数组的索引 访问/修改单个元素 花式索引 数组的切片 四、数组的变形 数组的转置 数组的翻转 数组的形状改变 数组的拼接 五、数组的运算 数组与常数的运算 数组与数组的运算 六、数组的函数 线性代数中的矩阵乘法 数学函数 聚合函数 七、布尔型数组 布尔型数组的生成 布尔型数组的常用函数 八、从NumPy数组到PyTorch张量 写在最后 写在开头 近期好久不写博客了,主要是心态略有浮躁,同时对于自己的网络安全专业和未来方向也略显怀疑,可能还会迷茫一段时间,但我已经决定尽可能让自己忙碌起来,心态尽量平和,少受互联网信息的影响,避免过多思考人生与未来。至于这个新开的深度学习专栏的来由,主要是本人近期要开始研究写论文的东西,要选取一些深度学习模型对某种网络攻击类型进行检测,而我本人又对于深度学习的领域仅限于了解一些基础原理,实践能力(当调参侠)基本没有,因此我也从头开始慢慢学习,用博客做个记录。不过我相信慢就是快,一步一步脚踏实地慢慢来,也终将会有所进步。 此处还特别感谢B站爆肝杰哥的视频,详解了配置pytorch环境的每一步。这里放上其视频链接(本文并不涉及到pytorch的内容,后续博客可能会用到): Python深度学习:安装Anaconda、PyTorch(GPU版)库与PyCharm_哔哩哔哩_bilibili 本文使用的NumPy库的版本为1.21,不过相近版本的语法都大差不差,基本可以通用。在进入深度学习具体算法的学习之前我们先介绍NumPy数组库,这是因为NumPy包为Python提供了数组变量的类型,弥补了Python本身数据类型的不足。虽然Python中的列表数据类型也可以实现数组的功能,但对于列表,其每个元素的数据类型是可以不同的,因此列表在存储元素的值的同时也要存储该元素的数据类型,这在一定程度上浪费了内存。而NumPy数组中的元素仅可容纳一种数据类型,存储时可以节约内存,加快运算速度,更方便深度学习的相关处理。下面我们做一个简单的引入: import numpy as np arr1 = np.array([10, 20, 30]) # 创建整数型数组 arr2 = np.array([1, 2, 3.]) # 创建浮点型数组,内涵浮点数,即为浮点型数组 list1 = ["hello", 100, 3.14] # 创建列表,元素的数据类型可以不同 print(arr1) print(arr2) print(list1) 可看到NumPy数组与Python列表的不同: 1. Numpy数组的元素数据类型一致(可分为整数型数组和浮点型数组),而列表可以不一致。 2. Numpy数组用print输出后元素之间是没有逗号','的,而列表的元素之间有逗号','作为分隔。 一、数组的类型与维度 数组的类型 Numpy数组就两种类型,整数型/浮点型。其中可以用.

面试2. c++面试(领为军融)

1本段代码是否存在问题?. #include <iostream> void main() { for (unsigned short idx =0;idx <65535; idx++) { std::cout << idx <<std::endl; } std::cout<<"Execution completed!"<<std::endl; } 解析: (1)可靠性异常(死循环): 在for循环中,idx变量是unsigned short类型,它的范围是0到65535。当idx达到65535时,再自增会导致它溢出并重置为0。因此,这个循环实际上是一个死循环,永远不会结束。 (2)main函数返回类型错误: main函数应该返回一个整数类型的值,通常是0表示程序正常退出。在您的代码中,main函数的返回类型被省略了,这在C++中是不允许的,编译器将其解释为返回类型为int的函数。 (3)标准库头文件包含不当: 使用时,应包含必要的标准库头文件,如。但是,您提供的代码片段中没有包含任何标准库头文件,这可能导致编译错误。即用using namespace std; 正确写法: #include <iostream> using namespace std; //(3)包含头文件的库 int main() { for (unsigned short idx =0;idx <65535; idx++) //(1)条件需要增加 { std::cout << idx <<std::endl; } std::cout<<"Execution completed!"<<std::endl; return 0; //(2)返回值 } 2. 本段代码执行完毕后,输出什么结果? #include <iostream> using namespace std; #pragma pack (push,4) typedef struct TagEntityType { unsigned char entityknd:4; unsigned char domain:6; unsigned char country:6; unsigned int category; unsigned char subCategory; unsigned int specific; unsigned char extra; }TEntityType; #pragma pack (pop) int main() { TEntityType et; std::cout << sizeof(et) << std::endl; return 0; } 12

【研发日记】Matlab/Simulink自动生成代码(二)——五种选择结构实现方法

文章目录 前言 Simulink实现选择结构 自动生成C代码 变式一 变式二 变式三 变式四 总结 前言 见《深入拆解Simulink自动生成代码(一)——数据流处理》 Simulink实现选择结构 用Simulink实现选择结构的一个最简单编程举例如下: 自动生成C代码 上述选择结构的Simulink自动生成的对应C代码如下: /* Switch: '<S2>/Switch' incorporates: * UnitDelay: '<S3>/Output' */ if (CodeGenerate_DW.Output_DSTATE > 0) { /* Outport: '<Root>/y1' incorporates: * Constant: '<S2>/Constant' */ CodeGenerate_Y.y1 = 5.0; } else { /* Outport: '<Root>/y1' incorporates: * Constant: '<S2>/Constant2' */ CodeGenerate_Y.y1 = 10.0; } /* End of Switch: '<S2>/Switch' */ /* Switch: '<S5>/FixPt Switch' incorporates: * Constant: '<S4>/FixPt Constant' * Constant: '<S5>/Constant' * Sum: '<S4>/FixPt Sum1' * UnitDelay: '<S3>/Output' */ if ((uint8_T)(CodeGenerate_DW.