有关随机数问题

方法1
(数据类型)(最小值+Math.random()*(最大值-最小值+1))
例:
(int)(1+Math.random()*(10-1+1))
从1到10的int型随数
方法2
获得随机数
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()*最大值
方法3
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到1之间的任意随机小数:

生成[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());
}
}

package MyMath;
import java.util.Random;
import java.util.Scanner;

//生成随机数 调用的是系统的方法

public class random {
int h;
static Scanner sc = new Scanner(System.in);

public static void main(String args[])

{
System.out.println("请输入随机数的个数:");
int h=sc.nextInt();

Random random=new Random();

for(int i=0;i<h;i++)

{


System.out.println(random.nextInt());

}

}

}

自己对第三组中方法进行了实现,验证成功。

方法才能调用方法,而System.out.println(x);  是一个内置方法,所以只能放到方法里去调用,不能写在类里.

代码中两个函数定义的类型不同,一个为int 另一个是double

重载方法:定义同名,但是具有不同的参数原形的方法(同一类中的两个或两个以上的方法可以有同一个名字,只要他们的参数声明表类型不同)!!!

 

package MyMath;
import java.math.BigInteger;
import java.util.Scanner;
public class Papw {
    public static void main(String[] args)
    {
        System.out.println("输入N");
        Scanner scan = new Scanner(System.in);
        System.out.println("输入k");
        Scanner scan1 = new Scanner(System.in);
        int number1 = scan.nextInt();
        int number2 = scan1.nextInt();
        System.out.println("The result is :" + calculateN2(number1,number2));
    }
    public static long calculateN(int n){
        if(n<=0){
            return 1;
        }
        else
        {
            return n*calculateN(n-1);
            
        }    
    }
    public static long calculateN2(int n,int k){
        
        if(calculateN(n) == 0 || calculateN(k) == 0)
        {
            return 0;
        }
        else
        {
            return calculateN(n)/(calculateN(k)*calculateN(n-k));
            
        }
    }

}

 

package MyMath;
public class hae {
    public static void main(String[] args) {
        System.out.println("Is 12@!@21 a Palindrome?"+isPalindrome("12@!@21"));
    }
    public static boolean isPalindrome(String s){
        if(s.length()<=1){
            return true;
        }else if(s.charAt(0) != s.charAt(s.length()-1)){
            return false;
        }
        return isPalindrome(s.substring(1,s.length()-1));
    }
}

 

 

package MyMath;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class hae{
    public static void main(String args[]) throws Exception {
        int n;
        BufferedReader buf = 
                new BufferedReader(new InputStreamReader(System.in));
        System.out.print("请输入盘数:");
        n = Integer.parseInt(buf.readLine());
        hae hanoi = new hae();
        hanoi.move(n, 'A', 'B', 'C');
    }

    public void move(int n, char a, char b, char c) {
        if (n == 1)
            System.out.println("盘 " + n + " 由 " + a + " 移至 " + c);
        else {
            move(n - 1, a, c, b);
            System.out.println("盘 " + n + " 由 " + a + " 移至 " + c);
            move(n - 1, b, a, c);
        }
    }
}

 

posted @ 2016-10-15 15:45  解昊兴  阅读(328)  评论(0)    收藏  举报