当前位置: 首页 > news >正文

技术周总结 2024.07.08~07.14(算法,Python,Java,Scala,PHP)

文章目录

  • 一、07.13 周六
    • 1.0)算法题:字符串中的单词反转
    • 1.1) 问题01:可靠性计算中的MTTR MTTF MTBF 分别指什么?他们之间有什么联系?
      • MTTR (Mean Time to Repair)
      • MTTF (Mean Time to Failure)
      • MTBF (Mean Time Between Failures)
      • 关系和区别
      • 举例说明
    • 1.2) 问题02 java中,list的 toArray()方法怎么使用
      • 1. `Object[] toArray()`
      • 2. `<T> T[] toArray(T[] a)`
      • 使用示例
      • 总结
    • 1.3) 问题03: 文件系统节点法中的逻辑号,与地址索引和单个文件最大长度的关系及计算
    • 文件逻辑块号与地址索引
      • 地址索引方式
      • 计算逻辑块号
    • 单个文件最大长度的计算
      • 总数据块数
      • 最大文件大小
      • 示例
    • 总结

一、07.13 周六

1.0)算法题:字符串中的单词反转

字符串中的单词反转
题解实现:https://leetcode.cn/problems/fan-zhuan-dan-ci-shun-xu-lcof/solutions/2842057/fang-xiang-bian-li-bing-jie-qu-chu-dan-c-s5j7/

class Solution:def reverseMessage(self, message: str) -> str:        listWord = []# 去掉开头结束的空格message = message.strip()i = j = len(message) - 1while i >= 0:# 寻找第一个空格的位置while i >= 0 and message[i] != ' ': i -= 1listWord.append(message[i+1:j+1])# 是空格的略过while i >= 0 and message[i] == ' ': i -= 1j = ireturn ' '.join(listWord)

1.1) 问题01:可靠性计算中的MTTR MTTF MTBF 分别指什么?他们之间有什么联系?

在可靠性工程和维护管理中,MTTR、MTTF 和 MTBF 是三个重要的指标。它们用于评估系统或设备的可靠性和维护需求。以下是每个指标的定义及它们之间的联系:

MTTR (Mean Time to Repair)

平均修复时间(MTTR)是指系统或设备发生故障后,从故障发生到修复完成并恢复正常运行所需的平均时间。MTTR 是衡量维护效率的重要指标,表示系统在出现故障后的平均修复时间。

公式:
[ \text{MTTR} = \frac{\text{总修复时间}}{\text{修复次数}} ]

MTTF (Mean Time to Failure)

平均故障间隔时间(MTTF)是指系统或设备在正常运行状态下,从开始运行到首次发生故障的平均时间。MTTF 通常用于不可修复系统或设备(例如一次性使用的产品),表示设备在首次故障前的平均运行时间。

公式:
[ \text{MTTF} = \frac{\text{总运行时间}}{\text{故障次数}} ]

MTBF (Mean Time Between Failures)

平均故障间隔时间(MTBF)是指系统或设备在两次故障之间的平均运行时间。MTBF 是衡量系统可靠性的一个关键指标,表示在多个故障循环中的平均无故障运行时间。MTBF 通常用于可修复系统或设备。

公式:
[ \text{MTBF} = \text{MTTF} + \text{MTTR} ]

关系和区别

  1. MTTF 与 MTBF

    • MTTF 适用于不可修复的系统或设备,表示设备从开始运行到首次故障的平均时间。
    • MTBF 适用于可修复的系统或设备,表示两次故障之间的平均时间。MTBF 包含了 MTTF 和 MTTR。
  2. MTTR 与 MTBF

    • MTTR 仅表示修复时间,不包含正常运行时间。
    • MTBF 包含了 MTTR 和 MTTF,表示两次故障之间的完整周期,包括正常运行时间和修复时间。
  3. 公式关系

    • 对于可修复系统,MTBF 可以分解为 MTTF 和 MTTR 的和:
      [ \text{MTBF} = \text{MTTF} + \text{MTTR} ]

举例说明

假设一个系统在 100 小时内发生了 4 次故障,总修复时间为 8 小时。

  • MTTR
    [ \text{MTTR} = \frac{8 \text{小时}}{4 \text{次}} = 2 \text{小时/次} ]

  • MTTF
    [ \text{MTTF} = \frac{92 \text{小时}}{4 \text{次}} = 23 \text{小时/次} ]
    (因为总运行时间 100 小时 - 总修复时间 8 小时 = 92 小时)

  • MTBF
    [ \text{MTBF} = 23 \text{小时/次} + 2 \text{小时/次} = 25 \text{小时/次} ]

通过以上例子,可以看到 MTTR、MTTF 和 MTBF 是如何计算并相互联系的。理解这些指标有助于评估和改进系统的可靠性和维护策略。

1.2) 问题02 java中,list的 toArray()方法怎么使用

在Java中,List接口提供了toArray()方法,用于将List转换为数组。toArray()方法有两种形式:

  1. Object[] toArray()
  2. <T> T[] toArray(T[] a)

下面分别介绍这两种形式的使用方法。

1. Object[] toArray()

这个方法将List中的所有元素返回为一个Object数组。由于返回的是Object数组,因此在需要特定类型的数组时,需要进行类型转换。

import java.util.ArrayList;
import java.util.List;public class ToArrayExample {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("Apple");list.add("Banana");list.add("Cherry");// 使用 toArray() 方法Object[] array = list.toArray();// 输出数组内容for (Object element : array) {System.out.println(element);}}
}

2. <T> T[] toArray(T[] a)

这个方法将List中的所有元素返回为一个指定类型的数组。如果传入的数组长度足够大,则使用该数组存储元素;否则,将创建一个新的数组并返回。

import java.util.ArrayList;
import java.util.List;public class ToArrayExample {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("Apple");list.add("Banana");list.add("Cherry");// 使用 toArray(T[] a) 方法String[] array = list.toArray(new String[0]);// 输出数组内容for (String element : array) {System.out.println(element);}}
}

在这个例子中,我们传递了一个长度为0的字符串数组给toArray方法。Java会根据列表的大小创建一个新的字符串数组,并返回包含所有列表元素的数组。

使用示例

import java.util.ArrayList;
import java.util.List;public class ToArrayExample {public static void main(String[] args) {List<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(3);// 使用 toArray() 方法转换为 Object 数组Object[] objectArray = list.toArray();System.out.println("Object Array:");for (Object obj : objectArray) {System.out.println(obj);}// 使用 toArray(T[] a) 方法转换为 Integer 数组Integer[] intArray = list.toArray(new Integer[0]);System.out.println("Integer Array:");for (Integer num : intArray) {System.out.println(num);}}
}

总结

  • Object[] toArray(): 将List转换为Object数组,适用于不关心数组类型或需要进行类型转换的情况。
  • <T> T[] toArray(T[] a): 将List转换为指定类型的数组,推荐使用这种方法,因为它避免了类型转换,提供了类型安全性。

1.3) 问题03: 文件系统节点法中的逻辑号,与地址索引和单个文件最大长度的关系及计算

在文件系统中,文件的逻辑块号与索引节点(inode)中的地址索引方式紧密相关。通过理解这些地址索引方式,可以推算出单个文件的最大长度。下面逐步介绍这一过程。

文件逻辑块号与地址索引

地址索引方式

文件系统中的索引节点通常使用以下几种地址索引方式:

  1. 直接指针:索引节点直接包含指向数据块的指针。
  2. 单级间接指针:指向一个间接块,间接块中包含指向数据块的指针。
  3. 双级间接指针:指向一个双重间接块,双重间接块中包含指向间接块的指针,间接块中再包含指向数据块的指针。
  4. 三级间接指针:指向一个三级间接块,三级间接块中包含指向双重间接块的指针,双重间接块中再包含指向间接块的指针,间接块中再包含指向数据块的指针。

计算逻辑块号

假设每个块的大小为B,每个指针的大小为P,则每个块中可以存储B / P个指针。

  1. 直接指针:如果索引节点有N个直接指针,则它们可以直接指向N个数据块。
  2. 单级间接指针:一个单级间接块可以存储B / P个指针,每个指针指向一个数据块,因此单级间接指针可以访问B / P个数据块。
  3. 双级间接指针:一个双级间接块可以存储B / P个指向间接块的指针,每个间接块又可以存储B / P个指向数据块的指针,因此双级间接指针可以访问(B / P) * (B / P)个数据块。
  4. 三级间接指针:一个三级间接块可以存储B / P个指向双级间接块的指针,每个双级间接块可以存储(B / P) * (B / P)个指向间接块的指针,因此三级间接指针可以访问(B / P) * (B / P) * (B / P)个数据块。

单个文件最大长度的计算

总数据块数

假设索引节点包含D个直接指针、一个单级间接指针、一个双级间接指针和一个三级间接指针,计算总数据块数T如下:

[ T = D + \frac{B}{P} + \left(\frac{B}{P}\right)^2 + \left(\frac{B}{P}\right)^3 ]

最大文件大小

最大文件大小为总数据块数乘以每个数据块的大小:

[ \text{最大文件大小} = T \times B ]

示例

假设:

  • 每个块大小B = 4096字节(4KB)
  • 每个指针大小P = 4字节
  • 索引节点有12个直接指针(D = 12

计算如下:

  1. 直接指针块数:12
  2. 单级间接指针块数:[ \frac{4096}{4} = 1024 ]
  3. 双级间接指针块数:[ \left(\frac{4096}{4}\right)^2 = 1024 \times 1024 = 1048576 ]
  4. 三级间接指针块数:[ \left(\frac{4096}{4}\right)^3 = 1024 \times 1024 \times 1024 = 1073741824 ]

总数据块数:

[ T = 12 + 1024 + 1048576 + 1073741824 = 1074790656 ]

最大文件大小:

[ \text{最大文件大小} = 1074790656 \times 4096 \approx 4 \text{TB} ]

总结

通过理解索引节点中的直接指针和多级间接指针的结构,我们可以计算出文件的逻辑块号以及单个文件的最大长度。这些计算依赖于块的大小、指针的大小以及索引节点中的指针数量。以上概述了如何推算这些值,并提供了一个具体的示例进行说明。

相关文章:

技术周总结 2024.07.08~07.14(算法,Python,Java,Scala,PHP)

文章目录 一、07.13 周六1.0&#xff09;算法题&#xff1a;字符串中的单词反转1.1&#xff09; 问题01:可靠性计算中的MTTR MTTF MTBF 分别指什么&#xff1f;他们之间有什么联系&#xff1f;MTTR (Mean Time to Repair)MTTF (Mean Time to Failure)MTBF (Mean Time Between F…...

UnityECS学习中问题及总结entityQuery.ToComponentDataArray和entityQuery.ToEntityArray区别

在Unity的ECS&#xff08;Entity Component System&#xff09;开发中&#xff0c;entityQuery.ToComponentDataArray<T>(Allocator.Temp) 和 entityQuery.ToEntityArray(Allocator.Temp) 是两种不同的方法&#xff0c;用于从实体查询中获取数据。除了泛型参数之外&#…...

[python]基于yolov10+gradio目标检测演示系统设计

【设计介绍】 YOLOv10结合Gradio实现目标检测系统设计是一个结合了最新目标检测技术和快速部署框架的项目。下面将详细介绍这一系统的设计和实现过程。 一、YOLOv10介绍 YOLOv10是YOLO&#xff08;You Only Look Once&#xff09;系列的最新版本&#xff0c;由清华大学的研究…...

浏览器开发者视角及CSS表达式选择元素

点击想要查看的接口&#xff0c;然后点击检查&#xff0c;便可以切换到该接口对应的html代码 如果F12不起作用的话&#xff0c;点击更多工具&#xff0c;然后选择开发者工具即可 ctrlF可以去查阅相关的CSS表达式选择元素 如果没有加#t1&#xff0c;那么表示的是选择所有的p 使用…...

GuLi商城-商品服务-API-品牌管理-统一异常处理

每个方法都加这段校验太麻烦了 准备做一个统一异常处理@ControllerAdvice 后台代码: package com.nanjing.gulimall.product.exception;import com.nanjing.common.exception.BizCodeEnum; import com.nanjing.common.utils.R; import lombok.extern.slf4j.Slf4j; import org…...

VUE+Spring Flux实现SSE长连接

VUE代码 // 初始化EventSourceinitEventSource(url) {const token getAccessToken();const eventSource new EventSourcePolyfill(url, {headers: {Authorization: Bearer ${token},tenant-id: getTenantId(),}});eventSource.onerror (e) > {console.log("SSE连接错…...

C#实现Winform程序右下角弹窗消息提示

前言 消息通知在应用程序中&#xff0c;是一种非常有用的功能&#xff0c;实现对一些重要信息、提醒或警告及时向用户展示。我们在使用软件时&#xff0c;通常会收到一种从桌面右下角弹出的&#xff08;提示信息或广告&#xff09;信息框。本文将介绍使用 C# 实现此种方式的信息…...

Java三剑客:封装、继承、多态的魔法世界

第一章&#xff1a;封装的艺术 —— 保护你的宝藏 案例分析&#xff1a;银行账户系统 想象一下&#xff0c;你正在构建一个银行账户系统。每个账户都有一个余额&#xff0c;这个余额需要受到严格的保护&#xff0c;不能被随意修改。我们可以通过封装来实现这一目标。 示例代…...

0145__Linux的capability

https://zhuanlan.zhihu.com/p/693896673 Linux的capability深入分析&#xff08;1&#xff09;_linux 设置进程capprm-CSDN博客 cap_init(3) - Linux manual page...

# Redis 入门到精通(一)数据类型(4)

Redis 入门到精通&#xff08;一&#xff09;数据类型&#xff08;4&#xff09; 一、redis 数据类型–sorted_set实现时效性任务管理 1、sorted_set 类型数据操作的注意事项 score 保存的数据存储空间是64位&#xff0c;如果是整数范围是-9007199254740992~9007199254740992…...

西邮计科嵌入式复习

西邮嵌入式复习 一、第一章复习二、第二章复习三、第三章复习四、第四章复习 一、第一章复习 二、第二章复习 三、第三章复习 四、第四章复习...

Java如何使用 HttpClientUtils 发起 HTTP 请求

Java如何使用 HttpClientUtils 发起 HTTP 请求 一、前言1.HttpClientUtils 类概览2.解析 HttpClientUtils 类3.使用 HttpClientUtils 类 一、前言 在现代的软件开发中&#xff0c;经常需要与远程服务器进行通信&#xff0c;例如获取数据或发送数据。Apache HttpClient 是一个流…...

无人机的工作原理

无人飞行器&#xff08;UAV&#xff0c;即Unmanned Aerial Vehicle&#xff09;的工作原理涉及多个复杂的系统和技术。以下是对各个系统和技术的详细介绍&#xff1a; 1. 飞行控制系统&#xff08;FCS&#xff09; 飞行控制系统是无人机的“大脑”&#xff0c;负责监控和调整…...

敏捷开发笔记(第10章节)--Liskov原则(LSP)

目录 1&#xff1a;PDF上传链接 10.1 Liskov替换原则&#xff08;LSP&#xff09; 10.2 一个违反LSP的简单例子 10.6 启发式规则和习惯用法 10.7 结论 1&#xff1a;PDF上传链接 【免费】敏捷软件开发(原则模式与实践)资源-CSDN文库 OCP背后的主要机制是抽象(abstraction…...

基于SSM的校园一卡通管理系统的设计与实现

摘 要 本报告全方位、深层次地阐述了校园一卡通管理系统从构思到落地的整个设计与实现历程。此系统凭借前沿的 SSM&#xff08;Spring、Spring MVC、MyBatis&#xff09;框架精心打造而成&#xff0c;旨在为学校构建一个兼具高效性、便利性与智能化的一卡通管理服务平台。 该系…...

新版Android Studio中设置gradle的JDK版本

旧版android studio 在旧版&#xff08;具体哪个版本号之前搞不清了&#xff09;中设置JDK版本在>File——>Project Structure——>SDK location——>Gradle Setting——>Gradle SDK 新版android studio 某次更新后发现SDK location下找不到Gradle Setting选项…...

打造你的智能家居指挥中心:基于STM32的多协议(zigbee、http)网关(附代码示例)

1. 项目概述 随着物联网技术的蓬勃发展&#xff0c;智能家居正逐步融入人们的日常生活。然而&#xff0c;市面上琳琅满目的智能家居设备通常采用不同的通信协议&#xff0c;导致不同品牌设备之间难以实现互联互通。为了解决这一难题&#xff0c;本文设计了一种基于STM32的多协…...

【基于R语言群体遗传学】-16-中性检验Tajima‘s D及连锁不平衡 linkage disequilibrium (LD)

Tajimas D Test 已经开发了几种中性检验&#xff0c;用于识别模型假设的潜在偏差。在这里&#xff0c;我们将说明一种有影响力的中性检验&#xff0c;即Tajimas D&#xff08;Tajima 1989&#xff09;。Tajimas D通过比较数据集中的两个&#x1d703; 4N&#x1d707;估计值来…...

防火墙组网与安全策略实验

实验要求&#xff1a; 实现&#xff1a; 防火墙接口配置&#xff1a; 所有接口均配置为三层接口 由于G1/0/3口下为vlan环境&#xff0c;所以防火墙需要配置子接口 &#xff1a; 交换机划分vlan分开生产区和办公区、配置trunk干道 &#xff1a; 安全策略&#xff1a; 生产区访…...

xmind梳理测试点,根据这些测试点去写测试用例

基本流&#xff08;冒烟用例必写&#xff09; 备选流 公共测试点&#xff1a;...

MICCAI 2024 每日一篇论文 纯纯直读 CUTS:用于多粒度无监督医学图像分割的深度学习和拓扑框架

MICCAI 2024 CUTS: A Deep Learning and Topological Framework for Multigranular Unsupervised Medical Image Segmentation CUTS: 用于多粒度无监督医学图像分割的深度学习和拓扑框架 作者 陈璐1*、Matthew Amodio1*、梁博伦.沈2、冯高3、阿曼阿维斯塔4、Sanjay Aneja3,5…...

实验9 存储过程与函数的创建管理实验

一、实验目的&#xff1a; 理解存储过程和函数的概念。掌握创建存储过程和函数的方法。掌握执行存储过程和函数的方法。掌握游标的定义、使用方法。 二、实验内容 1&#xff0e;某超市的食品管理的数据库的Food表&#xff0c;Food表的定义如表所示&#xff0c; Food表的定义…...

计算机网络--tcpdump和iptable设置、内核参数优化策略

tcpdump工具 tcpdump命令&#xff1a; 选项字段&#xff1a; 过滤表达式&#xff1a; 实用命令&#xff1a; TCP三次握手抓包命令&#xff1a; #客户端执行tcpdump 抓取数据包 tcpdump -i etho tcp and host 192.168.12.36 and port 80 -W timeout.pcapnetstat命令 netst…...

Vue3框架搭建2:axios+typescript封装

仓库地址&#xff1a;https://github.com/buguniao5213/LuArch 1、安装axios npm install axios2、创建文件 先创建一个文件夹&#xff1a; ├── src/ │ ├── api/ │ │ ├── index.ts/ #编写axios封装代码 │ │ └── example.ts/ #定义…...

【机器学习】使用决策树分类器预测汽车安全性的研究与分析

文章目录 一、决策树算法简介决策树的结构分类和回归树 (CART)决策树算法术语决策树算法直觉 二、属性选择度量信息增益熵 基尼指数计算分割基尼指数的步骤 三、决策树算法中的过度拟合避免过度拟合的方法 四、导入库和数据可视化探索性数据分析重命名列名查看数据集的总结信息…...

【香橙派 Orange pi AIpro】| 开发板深入使用体验

目录 一. &#x1f981; 写在前面二. &#x1f981; 愉快的安装流程2.1 安装前准备2.2 流程准备2.2.1 烧录镜像2.2.2 开机2.2.3 连网2.2.4 SSH远程连接开发板 2.3 体验 AI 应用样例 三. &#x1f981; 写在最后 一. &#x1f981; 写在前面 大家好&#xff0c;我是狮子呀&…...

初识Laravel(Laravel的项目搭建)

初识Laravel&#xff08;Laravel的项目搭建&#xff09; 一、项目简单搭建&#xff08;laravel&#xff09;1.首先我们确保使用国内的 Composer 加速镜像&#xff08;[加速原理](https://learnku.com/php/wikis/30594)&#xff09;&#xff1a;2.新建一个名为 Laravel 的项目&a…...

RequestContextHolder多线程获取不到request对象

RequestContextHolder多线程获取不到request对象&#xff0c;调用feign接口时&#xff0c;在Feign中的RequestInterceptor也获取不到HttpServletRequest问题解决方案。 1.RequestContextHolder多线程获取不到request对象 异常信息&#xff0c;报错如下&#xff1a; 2024-07-0…...

打造高效工作与生活质量的完美平衡

在快节奏的编程行业中&#xff0c;保持健康的工作与生活平衡是至关重要的。长时间坐在电脑前、面对紧凑的项目截止日期和频繁的加班文化&#xff0c;很容易导致身心健康问题&#xff0c;如眼睛疲劳、颈部和背部疼痛、压力累积、睡眠障碍乃至慢性疾病。因此&#xff0c;采取积极…...

【零基础】学JS之APIS第四天

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…...

浏览国外网站dns/广州网站排名优化报价

摘要&#xff1a; 前面分享了一些less的是用方法&#xff0c;包括在grunt中&#xff0c;今天在分享下使用gulp来编译less文件。首先需要安装gulp&#xff0c;如何安装请看文章。 安装插件&#xff1a; gulp编译less使用了gulp-less模块&#xff0c;所以package.json如下&#x…...

做婚礼设计在哪个网站下载素材/站长之家权重查询

[PA2015]Siano 描述 Description 农夫Byteasar买了一片n亩的土地&#xff0c;他要在这上面种草。 他在每一亩土地上都种植了一种独一无二的草&#xff0c;其中&#xff0c;第i亩土地的草每天会长高a[i]厘米。 Byteasar一共会进行m次收割&#xff0c;其中第i次收割在第d[i]天&am…...

怎么上传自己的做网站/seo助理

Java 导入 Java 导出 上传 前提准备2个Jar包&#xff1a; commons-fileupload-x.x.x.jar commons-io-x.x.x.jar 准备上传页面同步上传&#xff1a;<% page language"java" pageEncoding"UTF-8"%> <!DOCTYPE HTML> <html><head><…...

深圳莲花大厦住房和建设局网站/4001688688人工服务

【IOS最牛神器www.iGrimace.com 】市面唯一可用igrimaceV3永久卡-淘宝网18:27www.igrimace.comigrimace官网-积分墙|苹果ios赚钱软件|igrimace下载18:27www.cnblogs.comAPKTOOL的使用心得 - Curiosity - 博客园18:27item.taobao.com商品宣传软文代写代发百度新闻源收录门户网站…...

培训网站计时怎么破/济南seo排名优化推广

事务码MD61创建独立的生产计划...

上海城乡建设中级职称报名网站/厦门seo起梦网络科技

树莓派通过继电器控制水泵硬件要求继电器的工作原理接线方式代码编写硬件要求 树莓派4b、一个1路5V继电器、一个12V小水泵、一个能装四个五号电池的电池盒和四个五号电池、一个面包板和若干杜邦线。 继电器的工作原理 接线方式 (电源电压可能不足&#xff0c;但是可以工作) …...