zoukankan      html  css  js  c++  java
  • 有关随机数问题

    方法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);
            }
        }
    }

  • 相关阅读:
    MysqlServer如何实现成功卸载,并成功安装
    win7安装xampp,提示windows找不到-n文件(安装成功后,443端口占用,apache服务器无法正常启动)
    (JS实现顾客商品浏览记录以及购物车)Cookie的保存与删除
    (转)SVN 服务端、客户端安装及配置、导入导出项目
    正则表达式详解
    Struts2.3.4+Hibernate4.2.4+Mysql6.0整合
    CSS中TRBL和position关系
    const typedef #define
    数组的替代品
    输入
  • 原文地址:https://www.cnblogs.com/xhxdeblog/p/5964589.html
Copyright © 2011-2022 走看看