java作业—3
动手动脑:
一、编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数。
(数据类型)(最小值+Math.random()*(最大值-最小值+1))
例:
(int)(1+Math.random()*(10-1+1))
从1到10的int型随数
获得随机数
for (int i=0;i<30;i++)
{System.out.println((int)(1+Math.random()*10));}
(int)(1+Math.random()*10)
通过java.Math包的random方法得到1-10的int随机数
公式是:最小值---最大值(整数)的随机数
(类型)最小值+Math.random()*最大值
Random ra =new Random();
for (int i=0;i<30;i++)
{System.out.println(ra.nextInt(10)+1);}
通过java.util包中的Random类的nextInt方法来得到1-10的int随机数
生成[0,d)区间的随机小数,d为任意正的小数,则只需要将nextDouble方法的返回值乘以d即可。
[n1,n2]
也就是 ra.nextDouble() * (n2-n1)+n1
java产生随机数的几种方式
一.在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他就是个100以内的随机,这个在j2me中没有。
二.在java.util这个包里面提供了一个Random的类,我们可以新建一个Random的对象来产生随机数,他可以产生随机整数、随机float、随机double,随机long,这个也是我们在j2me的程序里经常用的一个取随机数的方法。
三.在我们的System类中有一个currentTimeMillis()方法,这个方法返回一个从1970年1月1号0点0分0秒到目前的一个毫秒数,返回类型是long,我们可以拿他作为一个随机数,我们可以拿他对一些数取模,就可以把他限制在一个范围之内啦
其实在Random的默认构造方法里也是使用上面第三种方法进行随机数的产生的
对于方法二中的Random类有以下说明:
java.util.Random类有两种方式构建方式:带种子和不带种子
不带种子:
此种方式将会返回随机的数字,每次运行结果不一样
public class RandomTest {
public static void main(String[] args) {
java.util.Random r=new java.util.Random();
for(int i=0;i<10;i++){
System.out.println(r.nextInt());
}
}
带种子:
此种方式,无论程序运行多少次,返回结果都是一样的
public static void main(String[] args) {
java.util.Random r=new java.util.Random(10);
for(int i=0;i<10;i++){
System.out.println(r.nextInt());
}
}
两种方式的差别在于
(1) 首先请打开Java Doc,我们会看到Random类的说明:
此类的实例用于生成伪随机数流,此类使用 48 位的种子,该种子可以使用线性同余公式对其进行修改(请参阅 Donald Knuth 的《The Art of Computer Programming, Volume 2》,第 3.2.1 节)。
如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。为了保证实现这种特性,我们为类Random指定了特定的算法。为了 Java 代码的完全可移植性,Java 实现必须让类 Random 使用此处所示的所有算法。但是允许 Random 类的子类使用其他算法,只要其符合所有方法的常规协定即可。
Java Doc对Random类已经解释得非常明白,我们的测试也验证了这一点。
(2) 如果没有提供种子数,Random实例的种子数将是当前时间的毫秒数,可以通过System.currentTimeMillis()来获得当前时间的毫秒数。打开JDK的源代码,我们可以非常明确地看到这一点。
public Random() { this(System.currentTimeMillis()); }
另外:
random对象的nextInt(),nextInt(int n)方法的说明:
int nextInt()
返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
int nextInt(int n)
返回一个伪随机数,它是从此随机数生成器的序列中取出的、在 0(包括)和指定值(不包括)之间均匀分布的 int值。
生成随机数的数学公式:


课后作业:
一、杨辉三角
package yanghuisanjiao;
public class yang {
public static void main(String[] args) {
// TODO Auto-generated method stub
int triangle[][]=new int [8][];
for(int i=0;i<triangle.length;i++)
{
triangle[i]=new int [i+1];
for(int j=0;j<=i;j++)
{
if(i==0||j==0||j==i)
{
triangle[i][j]=1;
}
else
{
triangle[i][j]=triangle[i-1][j-1]+triangle[i-1][j];
}
System.out.print(triangle[i][j]+" ");
}
System.out.println();
}
}
}

二、汉诺塔
设计思路:
如果柱子标为ABC,要由A搬至C,在只有一个盘子时,就将它直接搬至C,当有两个盘子,就将B当作辅助柱。
如果盘数超过2个,将最后一个盘子遮起来,就很简单了,每次处理两个盘子,也就是:A->B、A ->C、B->C这三个步骤,而被遮住的部份,
其实就是进入程序的递回处理。

三、回文数:


java作业—3的更多相关文章
- 第五次Java作业
作业一: 文件显示列表框. 增加了下拉式组合框,text区域设置颜色为红色. import javax.swing.*; import java.awt.*; import java.io.File; ...
- Java作业:第四次过程性考核 ——长春职业技术学院 16级网络工程
Java作业:第四次过程性考核 码云链接:https://gitee.com/SoridoD/java_kaohe4 (时间匆忙没打注释,真有急事) (客户端和服务器会自动创建表,所以没有sql ...
- Java作业:第一次过程性考核 ——长春职业技术学院 16级网络工程
Java作业:第一次过程性考核 ••<结构化程序设计>•• 考核目标:初步了解Java基本语法规则,学习结构化程序设计思想. 码云链接:https://gitee.com/SoridoD/ ...
- 初识Java作业
初识Java作业 一. 填空题 Java技术按照用途不同分为三大版本,分别是JavaSE. javaEE 和JavaMe Java虚拟机就是一个虚拟的用于执行 .class ...
- JAVA作业—字符串操作
------------恢复内容开始------------ ------------恢复内容开始------------ ------------恢复内容开始------------ ------- ...
- JAVA作业02
一, 课堂练习 (一)构造方法 1,源代码 public class Test{ public static void main(String[] args){ Foo obj1=new F ...
- java作业4
(一) 请查看String.equals()方法的实现代码,注意学习其实现方法.(发表到博客作业上) (二) 整理String类的Length().charAt(). getChars().rep ...
- Java作业代写
作业一 试用java编写一个九九乘法表并打印. 作业二: 设计两个人类与书类,并设置两者的关系,试用人去找书,书去找人,假如某人有一个儿子,它也有一本书,试用儿子去找书,书找儿子. 大作业 熟悉QQ农 ...
- Java作业-网络编程
Java网络编程 关于结合以前的大作业(即我的图书馆管理系统) 我感觉,图书馆管理系统更像是一个偏向于B/S模式的体系,如果想让他可用性变得更好,可以优化的地方只有使用数据库来代替文件,我个人是没有想 ...
随机推荐
- Laravel 安装
其实,laravel的安装网上给了很多方法,但是你可以直接根据laravel中国官网http://www.golaravel.com/docs/4.1/installation/给出的三种方法,选择其 ...
- js extend的实现
var obj = { a: "aaaaaa" }; var obj1 = { b: "bbbbbb" }; Object.extend = function ...
- td文字过长部分显示,鼠标移动显示全部内容
只要在该td中加上title属性,鼠标移到这里就会看到全部内容, 在td中加上div,属性设置如下,就能显示宽度为200px的内容,大于则隐藏.代码如下: <td title="我是代 ...
- VMWare虚拟机启动报错物理内存不足
尝试了三种修改 1.说是微软补丁KB2995388冲突-->>失败 2.修改win8.1高级环境性能更改设置-->>失败 3.修改config.ini文件-->>成 ...
- UVa 10405 & POJ 1458 Longest Common Subsequence
求最长公共子序列LCS,用动态规划求解. UVa的字符串可能含有空格,开始用scanf("%s", s);就WA了一次...那就用gets吧,怪不得要一行放一个字符串呢. (本来想 ...
- bug工具
在线工具:柠檬bug管理--兼顾项目管理 开源工具:PPM Bug 缺陷管理系统 项目管理.bug管理:http://www.bugfree.cn
- Web开发者的最爱 5个超实用的HTML5 API
摘要:毫无疑问,HTML5已经成为当今最流行的一门技术,尤其是Web开发者们对HTML5的兴趣是日趋渐浓.HTML5的许多功能也都能在现代浏览器中得以实现.然而,作为开发者,除了关注HTML5的功能和 ...
- redis 高级配置
一.安全性 设置密码:在配置文件中设置 requirepass 123456 由于redis的速度非常快,每秒可以进行15万次的暴力破解,所以密码设置要强壮些 在客户端登录或者连接的时候,使用 aut ...
- 2.13. 获取托管对象(Core Data 应用程序实践指南)
用NSFetchRequest获取NSArray,里面都是托管对象.如果上下文里没有数据,就会从持久化存储区里获取. NSFetchRequest *request = [NSFetchRequest ...
- js原生设计模式——10适配器模式之参数适配器
原理:参数适配器说白了就是给出要带入数据字段的对应字段的默认值,一旦数据字段值不足,就取默认值补足. [写法一]:直接返回 <!DOCTYPE html><html lang=&qu ...