集合化简的课堂练习 | 学习笔记

简介: 快速学习集合化简的课堂练习

开发者学堂课程【Scala 核心编程 - 进阶集合化简的课堂练习学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/610/detail/9054


集合化简的课堂练习


内容介绍

一.运行过程

二.化简


一.运行过程

在这里有一个历史的集合,在集合里面将数写的很大,因为相加不论是从左还是从右,结果都是一样的。

写成一个 miners,就是 NUMBER1 减去一个 number,现在我们来看用历史的调灵钓了一个 reduce left,然后调了一个 reduce the right,调了一个 reduce 的方法。

那么现在我们来看这个题目是什么,然后新建一个文件,我们将它叫做练习三,reduce 的一个练习,Reduce exercise,文件练习写完之后,把这个 DF 写到里面和写在外面本质是一样的,我们就将这个写到里面,现在来看看这个代码是什么。

val list4 =List(1, 9, 2,8)

def minus(num1: Int,num2: Int): Int=(

num1 -num2

) I

Var i6=(1/: list4) (minus) // ==> list4.foldLeft(0)(minus)printin(i6)//输出?

i6=(100st4)(minus)

printin(i6)//输出?

i6 = (list4:\10)(minus)// list4.foldRight(10)(minus)println(i6)//输出?

然后下面 right ,输出一个词并且说明这个词用的正确,

因为你是从左边开始化解,那么相当于一个动作是这样,是一减二减完过后,再跟三相减,所以说把这个结果拿到过后,再去跟四相等跟四相等之后把这个结果拿到之后,再传入这个 minus 的第一个参数,然后再去跟五相等,最后这个结果等于三正确,然后下面这个,从右化简它的流程是这样,同学们看是4和5相间隔,相间隔四减去一个 5a,它是先运行,做完了以后,他把这个结果传出这个 minus 的右面这个程序,那同样你这边把它包起来,包起来之后又传入下一个第二个参数,如果没问题,紧接着又做一个值传入给 minus 的归档,最后这个结果应该是等于三,算一下这个四减五等于负一,负一三减去一个负一等于四.二减去一个四等于负1/2,减去一个负,二等于三四圈,那下面这个问题我们可以直接看看源代码

vari6=(1/:list4)(minus)//=等价=> list4.foldLeft(1)(minus)println("i6=" +i6)

i6=(100/:list4)(minus)//=等价=> list4.foldLeft(100)(minus)println(i6)//输出? I

i6 =(list4:\10)(minus)//list4.foldRight(10)(minus)

println(i6) // 输出? 2

根据代码可以完全理解。


二.化简

现在就是说 reduce 底成交的,Reduce 等价于 reduce next 对我们人的正常思维都是从昨天开始执行,他也保留了这个 reduce,然后做了一个包装好这个题,我们就评价紧接着我们再来做第二个题,使用化简的方式求出历史的3427最小值,现在打开这个 ID 给大家。

写一个最小值,求出最小值,写一个函数 PDF,就 mini 接收两个参数,一个是 N1N te 类型,A11 个一个类型,A1 Int 类型,然后 N2 也是一个 int 类型,最后返回一个 int 类型,然后这边只做一个工作就可以,如果 N1 的保险,我们就返回二对,因为我要最小值 else ,返回 a,然后写完,当写完以后,我们要求最小值特别的简单,那直接写一个 mini286 等于加上类似的点。

reduce,是从左向右划点,还是从右划点,是一样的,因为你这个返回是1个字,所以说我们就从左边,左边我直接把这个 mini 放进去,代码就写完了,那么看看这个结果,应该是返回一个1就正确了,因为我要最小值1。

代码如下:

package com.atguigu.chapter11

object ScanDemoo1 {

def main(args: Array[String]): Unit ={

//普通函数

def minus( num1 : Int, num2 : Int): Int={

num1 - num2

//5I(1,2,3,4,5)=>(5,)

val i8 = (1 to 5).scanLeft(5)(minus) //Indexedseq[Int]println(i8)

看见代码后我们就可以很清晰的了解。

相关文章
|
传感器 算法 C语言
C语言基础算法---从数组中找最大最小值的实际应用
C语言基础算法---从数组中找最大最小值的实际应用
96 0
|
7月前
|
C语言
【汇编语言实战】求两组给定数组最大值
【汇编语言实战】求两组给定数组最大值
19 0
|
7月前
|
Java C++ Python
C/C++每日一练(20230422) 存在重复元素、组合总和、给表达式添加运算符
C/C++每日一练(20230422) 存在重复元素、组合总和、给表达式添加运算符
64 0
C/C++每日一练(20230422) 存在重复元素、组合总和、给表达式添加运算符
|
7月前
|
C语言
c语言编程练习题:7-53 生成3的乘方表
c语言编程练习题:7-53 生成3的乘方表
65 0
|
C语言
C语言:分数序列求和
题目:有一个分数序列:2/1 + 3/2 + 5/3 + 8/5 +...,求出这个数列的前 20 项之和。 背景:无。 思路:采用 for 循环,利用数学知识 分子:第 n 项 = 第 n - 1 项 + 第 n - 2 项。 分母:第 n 项 = 第 n - 1 项 + 第 n - 2 项。
260 0
离散数学_第二章:基本结构:集合、函数、序列、求和和矩阵(1)
离散数学_第二章:基本结构:集合、函数、序列、求和和矩阵(1)
224 0
|
C语言
C语言刷题系列——8.矩阵的行/列互换
C语言刷题系列——8.矩阵的行/列互换
148 0
函数和数组习题
函数和数组习题
90 0
|
Scala 开发者
集合化简介绍和案例 | 学习笔记
快速学习集合化简介绍和案例
集合化简介绍和案例 | 学习笔记