• 实验目的

    1. 在Linux操作系统中安装Scala
    2. 输入“scala”命令,熟悉地运行Scala解释器
    3. scala语言运行超级素数和猴子大王
  • 实验仪器

Virtualbox管理器

  • 实验框图(电路图/流程图)

    1. 在Windows中使用VirtualBox安装Ubuntu,安装好scala后,使用scala解释器,


可以使用命令“:quit”退出Scala解释器,如下所示:

  1. 打开命令行终端(可以使用Ctr+Alt+T组合键来打开终端)。在Scala安装目录/usr/local/scala下面新建一个mycode文件夹,用于存放自己的练习代码文件(后面我们都会把练习代码文件放在/usr/local/scala/mycode这个目录下),创建目录的命令如下:

vim后,分别在XTest1.scala,XTest2.scala文件中输入代码,并获得结果:


使用以下命令,对文件进行共享:

  • 实验基本原理(原理/源程序)(源程序来自老师和同学)

实验代码:

  1. XTest1.scala:
object XTest1{def powerOf2(x:Int):Int = {if(x==0) 1 else 2*powerOf2(x-1)}def sum(f: Int => Int, a:Int, b:Int):Int = {if(a > b) 0 else f(a) + sum(f, a+1, b)}def ave(a:Array[Int], n:Int):Double = {if (n == 0) a(n) else (ave(a, n-1) * (n-1)+a(n-1)) / n}}
    • XTest2.scala:
object XTest2{def main(args:Array[String]){var a = Array(1,2,3,4,5,6,7,8,9,10)println(XTest1.sum(x=>x*x, 1, 5))println(XTest1.sum(XTest1.powerOf2, 1, 5))println(XTest1.ave(a, 6))}}

3.超级素数:

object SpPrime{def IsPrime(i:Int):Boolean = {//判断是否为素数var flag:Boolean = truefor (j <- 2 until i) {if ((i%j)==0)flag = false}flag}def powerOf10(x:Int):Int = {//求10的幂if(x==0) 1 else 10 * powerOf10(x-1)}def main(args:Array[String]){for(i <- 2 to 10000){var flag:Boolean = truevar digit = (i+"").length//位数//printf("i有%d位\t",digit)for(j <- 1 to digit)if(!IsPrime(i/powerOf10(j-1)))//根据位数循环,除法取整依次求出i,去掉个位,十位,  百位...的值flag = falseif(flag)printf("\t%d",i)}}}

4.猴子选大王:

object MonkeyK{def main(args:Array[String]){var (num,n,point,result) = (100,100,-1,0)val arr = new Array[Int](num)for(i <- 0 to 99)arr(i) = 1while(num > 0) {for(i <- 0 to 2) {       // 报数point = (point + 1) % nwhile(arr(point) == 0) { //如果已经出列就让下一个未出列的猴子报数point = (point + 1) % n}if(i == 2 && arr(point) == 1) {// 出列arr(point) = 0result = point + 1num-=1}}if(num == 0) {printf("%d",result)}}}}
  • 实验数据、分析与实验结果

超级素数描述:依次从个位去掉后还为素数的素数即超级素数。求10000以内所有超级素数。


猴子选大王描述:n个猴子绕成一圈报数1,2,3,...每次报到3的猴子淘汰。直到最后只剩1个猴子时,它成为大王。若有100个猴子,那第几个猴子会赢?

  • 总结、心得体会

Scala是大小写敏感的,所以,不要输入错误,比如把小写开头的object输成大写开头的Object。文件名XTest.scala和xtest.scala也是两个不同的文件。

熟悉scala命令,scala语言运行超级素数和猴子大王相关推荐

  1. python求超级素数代码_C语言求超级素数

    展开全部 不考虑时间的需求,就用最简单的素数判断函数了#include #include #include bool isPrime(int n) { for(int i = 2; i <= s ...

  2. C语言求超级素数的个数,求一个输出a-b的超级素数程序(c)

    一瞬儿光 //素数 #include void findPrimeNumber(int start,int end) { if(start > 1 && end > sta ...

  3. Scala学习之猴子选大王,超级素数

    参考博客 超级素数思路是借鉴这篇博客https://blog.csdn.net/double_main/article/details/53835489 文章目录 参考博客 一.猴子选大王 1.问题描 ...

  4. scala命令行运行spark代码

    /home/appleyuchi/scripts/scala.sh #!/bin/bash # author:菜鸟教程 # url:www.runoob.comecho "Shell 传递参 ...

  5. Scala go java_Java、Scala和Go语言多线程并发对比测试结果和结论

    AMD 双核 2.8G ,4G内存 winxp java+concjava+AKKA1.3java+AKKA2.0Scala+AKKA1.3Scala+AKKA2.0Go+goroutine 1-N ...

  6. c语言十万以内超级素数,用C语言求素数的优化

    用C语言求素数的优化 这个程序运行了8个小时,求一亿以内的素数和超级素数. 大家帮忙看看,我求一亿以内的素数和超级素数.从下午5:30开始,一直到零晨0点30才结束.我的电脑配置也可以.INTER E ...

  7. maven构建scala工程并最终运行的所有细节(scala maven helloworld)

    琢磨了很久,网上虽然各种例子,但是好多都是依赖IDE的,要么就是生成jar文件后没有主清单目录,写这篇博客一次性全部解决掉. 1,文件目录 (python2.7) appleyuchi@ubuntu: ...

  8. Scala与Java语言的差异

    1.源文件后缀名 Java:.java Scala:.scala 2.变量 Java: int param1 = 100; int param2 Scala: 格式: var VariableName ...

  9. C语言求一万以内的超级素数,用C语言求素数的优化.doc

    用C语言求素数的优化 用C语言求素数的优化 这个程序运行了8个小时,求一亿以内的素数和超级素数. 大家帮忙看看,我求一亿以内的素数和超级素数.从下午5:30开始,一直到零晨0点30才结束.我的电脑配置 ...

最新文章

  1. 用dblink能修改_【学习笔记】通过修改基表(link$)让非public dblink变为public
  2. 互联网时代大数据的核心价值
  3. 社区活跃吗_武汉大江园社区活跃着一支90后志愿者突击队
  4. Java版SMS4加密算法
  5. 20169207《Linux内核原理与分析》第五周作业
  6. 201024阶段二Linux
  7. python httplib2的安装
  8. 工作108:vue里面wangEdit编辑器使用
  9. 输电线路巡检机器人PPT_国网泰安供电公司开展输电线路无人机精细化巡检
  10. 加载本地文件为String类型
  11. 计算机专业学生实习目的,计算机专业学生的实习目的
  12. 智能数据中心和智慧园区:华为的单点突破与全局效应
  13. [ARC120F]Wine Thief
  14. 在Ubuntu中以管理员身份用可视化的方式打开根目录文件夹
  15. 机器学习中的数学——拟牛顿法(Quasi-Newton Methods)
  16. 二、设计模式-必要的基础知识—旅行前的准备 #和设计模式一起旅行#
  17. Neutral Graph Collaborative Filtering——论文提炼
  18. springboot+mybatis-plus在log控制台输出sql语句
  19. 2019年,做努力奔跑的追梦人
  20. ViewPager2与RadioGroup连用实现底部导航

热门文章

  1. linux系统目录树/内核源码目录树
  2. 上不了名校?可以在 GitHub 上读他们的课程
  3. 《JavaEE开发的颠覆者——Spring Boot实战》是一本好书
  4. 静态链接库与动态链接库 (二)动态链接库的编译与使用
  5. pku The Windy's KM最小权匹配 or 最小费用最大流
  6. 分享.NET开发中经常使用到的代码片段 完全从实际项目中提取出来,也可被反反复复的重复借用...
  7. Android Intent的几种用法全面总结
  8. 多传感器融合之滤波(二)EKF
  9. JavaAgent 实现字节码注入
  10. Linux 系统挂载数据盘