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

分布式计算框架

进入Scala模式

终端里输入Scala

创建一个新的Scala文件

vim 文件名.scala

复制粘贴代码

ctrl+shift c/v

使用vim

先进入插入模式,可以通过按i键来实现,然后粘贴代码,完成后按Esc键退出插入模式,保存并退出可以通过输入:wq然后按Enter键。

编译运行程序

scalac 文件名.scala
scala 文件名

终端退出scala模式

:quit  /  :exit

删除在vim里写好的代码

  1. 删除字符或单词

    • 在普通模式(Normal mode)下,你可以使用 x 命令来删除光标所在位置的单个字符。
    • 要删除一个单词,首先使用 w 命令将光标移动到单词的末尾,然后使用 x 来删除整个单词。
  2. 删除一行

    • 在普通模式下,使用 dd 命令删除光标所在的整行。
  3. 删除多行

    • 在普通模式下,使用数字加 dd 来删除光标所在位置向下的多行。例如,5dd 会删除光标所在行和接下来的四行。
  4. 删除到行尾

    • 在普通模式下,使用 D 命令删除从光标位置到行尾的所有内容。
  5. 删除到文件末尾

    • 在普通模式下,使用 :%d 命令删除整个文件的内容。
  6. 撤销删除

    • 如果你不小心删除了内容,可以使用 u 命令来撤销删除操作。
  7. 退出 Vim

    • 如果你想要退出 Vim 而不保存任何更改,可以在普通模式下使用 :q! 命令。

请注意,Vim 的模式非常重要。确保你在执行删除操作之前处于普通模式。如果你不确定自己处于哪个模式,可以按下 Esc 键返回普通模式。

如果你刚刚在 Vim 中写好了代码并想要全部删除,可以使用以下命令:

 

:%d

这将在普通模式下删除整个文件的内容。如果你只想删除文件的一部分,确保使用正确的命令和范围。如果你只是想退出而不保存更改,可以使用:

 

:q!

这将放弃所有更改并退出 Vim。

创建.txt文件并在里面写入内容

import java.io.FileWriter// 指定文件名
val filename = "filename.txt"// 使用try-with-resources语句确保文件最终被关闭
val file = new FileWriter(filename)
try {// 写入内容到文件file.write("学号 性别 数学 英语 物理\n")file.write("301610 男 80 64 78\n")file.write("301611 女 65 87 58\n")
} catch {case e: Exception => e.printStackTrace() // 处理可能的异常
} finally {// 关闭文件file.close()
}

实验成功代码

计算级数

object Exercise2_1 {def main(args: Array[String]): Unit = {// 读取用户输入的q值val q = scala.io.StdIn.readDouble() // 读取输入的q值// 初始化级数和nvar Sn = 0.0var n = 1.0// 循环计算级数的和,直到Sn大于或等于qwhile (Sn < q) {Sn += 1.0 / nn += 1.0}// 输出Sn的值println(s"Sn=${Sn}")}
}

分别取出下面三个班级Top3的分数  ruc01

object ClassScores {def main(args: Array[String]): Unit = {// 初始化Map来存储每个班级的分数列表,明确指定列表类型为Intvar scores = Map("class1" -> List[Int](),"class2" -> List[Int](),"class3" -> List[Int]())// 读取数据并填充分数列表val data = List(("class1", 90), ("class2", 91), ("class1", 88),("class2", 99), ("class1", 100), ("class2", 77),("class1", 77), ("class2", 57), ("class3", 77),("class3", 88), ("class3", 99), ("class3", 100),("class3", 22), ("class3", 77))// 将分数添加到对应的班级列表中data.foreach {case (className, score) =>scores = scores.updated(className, scores(className) :+ score)}// 导入隐式转换,以便能够对Int进行排序import scala.math.Ordered// 打印每个班级的Top 3分数scores.foreach { case (className, scoreList) =>// 显式指定排序顺序val topScores = scoreList.sorted(Ordering[Int].reverse).take(3)println(s"Top 3 scores for $className: ${topScores.mkString(", ")}")}}
}

统计学生成绩一     ruc02   仅成功编译,无法运行

import scala.io.Source
import scala.collection.mutable.ListBufferobject ruc02 {def main(args: Array[String]): Unit = {// 读取文件内容val lines = Source.fromFile("filename.txt").getLines().toList// 跳过表头val headers = lines.head.split("\\s+").tailval students = lines.tail.map(_.split("\\s+").map(_.toInt))// 定义统计函数def statistics(scores: List[Int]): (Double, Int, Int) = {val total = scores.sumval average = total.toDouble / scores.lengthval min = scores.minval max = scores.max(average, min, max)}// 计算总体统计数据val overallStats = headers.zipWithIndex.map { case (header, index) =>val scores = students.map(_(index))val (average, min, max) = statistics(scores)(header, (average, min, max))}.toMap// 计算男女分别的统计数据val genderStats = Map("male" -> headers.tail.map(_ => ListBuffer[Int]()),"female" -> headers.tail.map(_ => ListBuffer[Int]()))students.foreach { student =>val gender = student(1) // 性别字段的索引是1headers.tail.indices.foreach { index =>val headerIndex = index + 1 // 跳过性别字段val score = student(headerIndex)genderStats(gender.toString)(headerIndex - 1) += score}}val statsForGender = (gender: String) => {headers.tail.map { header =>val scores = genderStats(gender)(headers.indexOf(header) - 1).toListval (average, min, max) = statistics(scores)((gender, header), (average, min, max))}.toMap}val maleStats = statsForGender("male")val femaleStats = statsForGender("female")// 打印统计结果println("Overall statistics:")overallStats.foreach { case (course, stats) =>println(s"$course: avg=${stats._1}, min=${stats._2}, max=${stats._3}")}println("\nMale statistics:")maleStats.foreach { case ((gender, course), stats) =>println(s"$course: avg=${stats._1}, min=${stats._2}, max=${stats._3}")}println("\nFemale statistics:")femaleStats.foreach { case ((gender, course), stats) =>println(s"$course: avg=${stats._1}, min=${stats._2}, max=${stats._3}")}}
}

统计学生成绩二   仅成功编译,无法运行

import scala.collection.mutable.ArrayBuffer
import scala.io.Sourceobject ruc02 {def get_alldata(allStudents: List[Array[String]], courseNames: Array[String], array1: ArrayBuffer[Int], array2: ArrayBuffer[Int], array3: ArrayBuffer[Int]): Unit = {for (i <- 2 until courseNames.length + 2) {for (j <- allStudents.indices) {val score = allStudents(j)(i).toIntarray1.append(score)if (allStudents(j)(1) == "male") {array2.append(score)} else if (allStudents(j)(1) == "female") {array3.append(score)}}}}def get_data(array: ArrayBuffer[Int], data2: ArrayBuffer[Double], Nn: Int): Unit = {var index = 0while (index < array.length) {val scores = array.slice(index, index + Nn)val average = scores.sum.toDouble / scores.lengthval min = scores.minval max = scores.maxdata2.append(average)data2.append(min)data2.append(max)index += Nn}}def print_data(data2: ArrayBuffer[Double], courseNames: Array[String]): Unit = {for (i <- courseNames.indices) {println(s"${courseNames(i)}:  average=${data2(i * 3).formatted("%.2f")},  min=${data2(i * 3 + 1)},  max=${data2(i * 3 + 2)}")}}def main(args: Array[String]): Unit = {val File = Source.fromFile("d:/2.txt")val all_Data = File.getLines().map {_.split(" ")}.toListval courseNames = all_Data.head.drop(1).toArray  // Convert to Array for mutabilityval allStudents = all_Data.tail.map(_.map(_.trim)) // Remove leading and trailing spacesval array1 = ArrayBuffer[Int]()val array2 = ArrayBuffer[Int]()val array3 = ArrayBuffer[Int]()get_alldata(allStudents, courseNames, array1, array2, array3)val data2 = ArrayBuffer[Double]()val Nn = courseNames.lengthget_data(array1, data2, Nn)get_data(array2, data2, Nn)get_data(array3, data2, Nn)println("course  average  min  max")print_data(data2.take(Nn * 3), courseNames)println("course  average  min  max(male)")print_data(data2.slice(Nn * 3, Nn * 6), courseNames)println("course  average  min  max(female)")print_data(data2.slice(Nn * 6, Nn * 9), courseNames)}
}

实验截图

相关文章:

分布式计算框架

进入Scala模式 终端里输入Scala 创建一个新的Scala文件 vim 文件名.scala 复制粘贴代码 ctrlshift c/v 使用vim 先进入插入模式&#xff0c;可以通过按i键来实现&#xff0c;然后粘贴代码&#xff0c;完成后按Esc键退出插入模式&#xff0c;保存并退出可以通过输入:wq然后按…...

YOLO交通目标识别数据集(红绿灯-汽车-自行车-卡车等)

YOLO交通目标识别 数据集 模型 ui界面 ✓图片数量15000&#xff0c;xml和txt标签都有&#xff1b; ✓class&#xff1a;biker&#xff0c;car&#xff0c;pedestrian&#xff0c;trafficLight&#xff0c;trafficLight-Green&#xff0c;trafficLight-GreenLeft&#xff0c; t…...

Vue学习记录之六(组件实战及BEM框架了解)

一、BEM BEM是一种前端开发中常用的命名约定&#xff0c;主要用于CSS和HTML的结构化和模块化。BEM是Block、Element、Modifier的缩写。 Block&#xff08;块&#xff09;&#xff1a;独立的功能性页面组件&#xff0c;可以是一个简单的按钮&#xff0c;一个复杂的导航条&…...

为什么会出现电话机器人?语音电话机器人的出现起到了什么作用?

电话机器人的出现是科技发展与市场需求相结合的产物&#xff0c;它们的广泛应用反映了现代社会对效率、成本和服务质量的不断追求。以下是电话机器人出现的几个主要原因。 1. 市场需求的变化 随着经济的发展和消费模式的转变&#xff0c;客户对服务的期望不断提高。他们希望能…...

【CSS Tricks】深入聊聊前端编写css的方法论

目录 引言BEM 规范OOCSS 规范结构与样式分离容器与内容分离 SMACSS 规范ITCSS 规范设置层工具层通用层元素层对象层组件层微调层由此分层后的项目代码结构也会相应做修改&#xff0c;主要有两种形式&#xff1a;文件夹形式文件名形式引用方式按照层级顺序引用 ACSS 规范总结 引…...

多维时序 | GWO-VMD-SSA-LSTM灰狼优化变分模态分解联合麻雀优化长短期记忆网络多变量时间序列光伏功率预测(Matlab)

多维时序 | GWO-VMD-SSA-LSTM灰狼优化变分模态分解联合麻雀优化长短期记忆网络多变量时间序列光伏功率预测 目录 多维时序 | GWO-VMD-SSA-LSTM灰狼优化变分模态分解联合麻雀优化长短期记忆网络多变量时间序列光伏功率预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 …...

5.使用 VSCode 过程中的英语积累 - Go 菜单(每一次重点积累 5 个单词)

前言 学习可以不局限于传统的书籍和课堂&#xff0c;各种生活的元素也都可以做为我们的学习对象&#xff0c;本文将利用 VSCode 页面上的各种英文元素来做英语的积累&#xff0c;如此做有 3 大利 这些软件在我们工作中是时时刻刻接触的&#xff0c;借此做英语积累再合适不过&a…...

Java高级Day50-连接池

132.数据库连接池 传统获取Connection问题分析 传统的JDBC数据库连接使用DriverManager来获取&#xff0c;每次向数据库建立连接的时候都要将Connection加载到内存中&#xff0c;再验证IP地址&#xff0c;用户名和密码。需要数据库连接的时候&#xff0c;就向数据库请求一个&a…...

软件设计-开闭原则

开闭原则是一种重要的设计思想&#xff0c;它为软件系统的可扩展性和可维护性提供了有力的支持。 一、开闭原则的原理 开闭原则&#xff08;Open-Closed Principle, OCP&#xff09;是指软件实体&#xff08;类、模块、函数等&#xff09;应当对扩展开放&#xff0c;对修改关…...

Angular面试题八

一、请解释Angular中的AOT编译是什么&#xff0c;并简述其优势。 Angular中的AOT编译&#xff0c;全称为Ahead-of-Time&#xff08;预先编译&#xff09;&#xff0c;是一种在构建过程中将Angular应用程序的模板和组件编译成本地机器代码&#xff08;通常是JavaScript代码&…...

【Kubernetes】常见面试题汇总(三十六)

目录 88. Pod 启动失败如何解决以及常见的原因有哪些&#xff1f; 89.简述 K8s 中 label 的几种应用场景。 特别说明&#xff1a; 题目 1-68 属于【Kubernetes】的常规概念题&#xff0c;即 “ 汇总&#xff08;一&#xff09;~&#xff08;二十二&#xff09;” 。 题…...

深入解析SGD、Momentum与Nesterov:优化算法的对比与应用

目录 1. 梯度下降算法2. BGD、SGD、MBGD3. momentum与dampening3.1 另一种形式的momentum3.1.1 学习率固定3.1.2 学习率不固定 4. nesterov4.1 PyTorch中的Nesterov4.2 Polyak与Nesterov的比较 Ref 1. 梯度下降算法 先考虑一元情形。假设待更新的参数为 θ \theta θ&#xf…...

Vue2实现主内容滚动到指定位置时,侧边导航栏也跟随选中变化

需求背景&#xff1a; PC端项目需要实现一个有侧边导航栏&#xff0c;可点击跳转至对应内容区域&#xff0c;类似锚点导航&#xff0c; 同时主内容区域上下滚动时&#xff0c;可实现左侧导航栏选中样式能实时跟随变动的效果。 了解了一下&#xff0c;Element Plus 组件库 和 …...

dev containers plugins for vscode构建虚拟开发环境

0. 需求说明 自用笔记本构建一套开发环境&#xff0c;用docker 虚拟插件 dev containers,实现开发环境的构建&#xff0c;我想构建一套LLMs的环境&#xff0c;由于环境配置太多&#xff0c;不想污染本地环境&#xff0c;所以选择隔离技术 1. 环境准备 vscodedocker 2. 步骤…...

C++ | Leetcode C++题解之第433题最小基因变化

题目&#xff1a; 题解&#xff1a; class Solution { public:int minMutation(string start, string end, vector<string>& bank) {int m start.size();int n bank.size();vector<vector<int>> adj(n);int endIndex -1;for (int i 0; i < n; i)…...

Qt窗口——QMenuBar

文章目录 QMenuBar示例演示给菜单栏设置快捷键给菜单项设置快捷键添加子菜单添加分割线添加图标 QMenuBar Qt中采用QMenuBar来创建菜单栏&#xff0c;一个主窗口&#xff0c;只允许有一个菜单栏&#xff0c;位于主窗口的顶部、主窗口标题栏下面&#xff1b;一个菜单栏里面有多…...

python网站创建001:内容概览

内容概览&#xff1a; 1. Python环境搭建&#xff08;Python解释器、Pycharm、环境变量等&#xff09; 2. 基础语法&#xff08;条件、循环、输入输出、编码等&#xff09; 3. 数据类型型&#xff08;整型、布尔型、字符串、列表、字典、元组、集合等&#xff09; 4. 函数&…...

代码随想录第22天|

class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {sort(g.begin(), g.end());sort(s.begin(), s.end());int index s.size() - 1; // 饼干数组的下标int result 0;for (int i g.size() - 1; i > 0; i--) { // 遍历…...

WPF-基础-02 DispatcherObject类

public abstract class DispatcherObject {protected DispatcherObject();public Dispatcher Dispatcher { get; }public bool CheckAccess();public void VerifyAccess(); }WPF中使用Dispatcher更新界面 xaml<Grid><TextBlock x:Name"tbkShow" Horizontal…...

STM32与51单片机的区别:是否应该直接学习STM32?

STM32与51单片机的区别&#xff1a;是否应该直接学习STM32&#xff1f; 在单片机的世界里&#xff0c;STM32和51单片机都是非常重要的角色。对于初学者来说&#xff0c;是否可以直接跳过51单片机&#xff0c;直接学习STM32&#xff0c;这个问题一直存在争议。让我们深入探讨这…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...