熟悉scala命令,scala语言运行超级素数和猴子大王
实验目的
- 在Linux操作系统中安装Scala
- 输入“scala”命令,熟悉地运行Scala解释器
- scala语言运行超级素数和猴子大王
- 实验仪器
Virtualbox管理器
实验框图(电路图/流程图)
- 在Windows中使用VirtualBox安装Ubuntu,安装好scala后,使用scala解释器,
可以使用命令“:quit”退出Scala解释器,如下所示:
- 打开命令行终端(可以使用Ctr+Alt+T组合键来打开终端)。在Scala安装目录/usr/local/scala下面新建一个mycode文件夹,用于存放自己的练习代码文件(后面我们都会把练习代码文件放在/usr/local/scala/mycode这个目录下),创建目录的命令如下:
vim后,分别在XTest1.scala,XTest2.scala文件中输入代码,并获得结果:
使用以下命令,对文件进行共享:
实验基本原理(原理/源程序)(源程序来自老师和同学)
实验代码:
- 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语言运行超级素数和猴子大王相关推荐
- python求超级素数代码_C语言求超级素数
展开全部 不考虑时间的需求,就用最简单的素数判断函数了#include #include #include bool isPrime(int n) { for(int i = 2; i <= s ...
- C语言求超级素数的个数,求一个输出a-b的超级素数程序(c)
一瞬儿光 //素数 #include void findPrimeNumber(int start,int end) { if(start > 1 && end > sta ...
- Scala学习之猴子选大王,超级素数
参考博客 超级素数思路是借鉴这篇博客https://blog.csdn.net/double_main/article/details/53835489 文章目录 参考博客 一.猴子选大王 1.问题描 ...
- scala命令行运行spark代码
/home/appleyuchi/scripts/scala.sh #!/bin/bash # author:菜鸟教程 # url:www.runoob.comecho "Shell 传递参 ...
- Scala go java_Java、Scala和Go语言多线程并发对比测试结果和结论
AMD 双核 2.8G ,4G内存 winxp java+concjava+AKKA1.3java+AKKA2.0Scala+AKKA1.3Scala+AKKA2.0Go+goroutine 1-N ...
- c语言十万以内超级素数,用C语言求素数的优化
用C语言求素数的优化 这个程序运行了8个小时,求一亿以内的素数和超级素数. 大家帮忙看看,我求一亿以内的素数和超级素数.从下午5:30开始,一直到零晨0点30才结束.我的电脑配置也可以.INTER E ...
- maven构建scala工程并最终运行的所有细节(scala maven helloworld)
琢磨了很久,网上虽然各种例子,但是好多都是依赖IDE的,要么就是生成jar文件后没有主清单目录,写这篇博客一次性全部解决掉. 1,文件目录 (python2.7) appleyuchi@ubuntu: ...
- Scala与Java语言的差异
1.源文件后缀名 Java:.java Scala:.scala 2.变量 Java: int param1 = 100; int param2 Scala: 格式: var VariableName ...
- C语言求一万以内的超级素数,用C语言求素数的优化.doc
用C语言求素数的优化 用C语言求素数的优化 这个程序运行了8个小时,求一亿以内的素数和超级素数. 大家帮忙看看,我求一亿以内的素数和超级素数.从下午5:30开始,一直到零晨0点30才结束.我的电脑配置 ...
最新文章
- 用dblink能修改_【学习笔记】通过修改基表(link$)让非public dblink变为public
- 互联网时代大数据的核心价值
- 社区活跃吗_武汉大江园社区活跃着一支90后志愿者突击队
- Java版SMS4加密算法
- 20169207《Linux内核原理与分析》第五周作业
- 201024阶段二Linux
- python httplib2的安装
- 工作108:vue里面wangEdit编辑器使用
- 输电线路巡检机器人PPT_国网泰安供电公司开展输电线路无人机精细化巡检
- 加载本地文件为String类型
- 计算机专业学生实习目的,计算机专业学生的实习目的
- 智能数据中心和智慧园区:华为的单点突破与全局效应
- [ARC120F]Wine Thief
- 在Ubuntu中以管理员身份用可视化的方式打开根目录文件夹
- 机器学习中的数学——拟牛顿法(Quasi-Newton Methods)
- 二、设计模式-必要的基础知识—旅行前的准备 #和设计模式一起旅行#
- Neutral Graph Collaborative Filtering——论文提炼
- springboot+mybatis-plus在log控制台输出sql语句
- 2019年,做努力奔跑的追梦人
- ViewPager2与RadioGroup连用实现底部导航