01-方法

------------恢复内容开始------------

一、

public class TestMath
{
    public static void main(String[] args) 
    {
        /*---------下面是三角运算---------*/
        //将弧度转换角度
        System.out.println("Math.toDegrees(1.57):" + Math.toDegrees(1.57)); 
        //将角度转换为弧度
        System.out.println("Math.toRadians(90):" + Math.toRadians(90));
        //计算反余弦,返回的角度范围在 0.0 到 pi 之间。
        System.out.println("Math.acos(0.3):" + Math.acos(1.2)); 
        //计算反正弦;返回的角度范围在 -pi/2 到 pi/2 之间。 
        System.out.println("Math.asin(0.8):" + Math.asin(0.8)); 
        //计算反正切;返回的角度范围在 -pi/2 到 pi/2 之间。 
        System.out.println("Math.atan(2.3):" + Math.atan(2.3)); 
        //计算三角余弦。
        System.out.println("Math.cos(1.57):" + Math.cos(1.57)); 
        //计算值的双曲余弦。 
        System.out.println("Math.cosh(1.2 ):" + Math.cosh(1.2 )); 
        //计算正弦
        System.out.println("Math.sin(1.57 ):" + Math.sin(1.57 )); 
        //计算双曲正弦
        System.out.println("Math.sinh(1.2 ):" + Math.sinh(1.2 ));
        //计算三角正切
        System.out.println("Math.tan(0.8 ):" + Math.tan(0.8 )); 
        //计算双曲余弦
        System.out.println("Math.tanh(2.1 ):" + Math.tanh(2.1 )); 
        //将矩形坐标 (x, y) 转换成极坐标 (r, thet));,返回所得角 theta。 
        System.out.println("Math.atan2(0.1, 0.2):" + Math.atan2(0.1, 0.2));
        /*---------下面是取整运算---------*/
        //取整,返回小于目标数的最大整数。
        System.out.println("Math.floor(-1.2 ):" + Math.floor(-1.2 )); 
        //取整,返回大于目标数的最小整数。
        System.out.println("Math.ceil(1.2):" + Math.ceil(1.2)); 
        //四舍五入取整
        System.out.println("Math.round(2.3 ):" + Math.round(2.3 )); 
        /*---------下面是乘方、开方、指数运算---------*/
        //计算平方根。
        System.out.println("Math.sqrt(2.3 ):" + Math.sqrt(2.3 )); 
        //计算立方根。 
        System.out.println("Math.cbrt(9):" + Math.cbrt(9)); 
        //返回欧拉数 e 的n次幂。
        System.out.println("Math.exp(2):" + Math.exp(2)); 
        //返回 sqrt(x2:" +y2),没有中间溢出或下溢。
        System.out.println("Math.hypot(4 , 4):" + Math.hypot(4 , 4));
        // 按照 IEEE 754 标准的规定,对两个参数进行余数运算。
        System.out.println("Math.IEEEremainder(5 , 2):" + Math.IEEEremainder(5 , 2));
        //计算乘方
        System.out.println("Math.pow(3, 2):" + Math.pow(3, 2));
        //计算自然对数
        System.out.println("Math.log(12):" + Math.log(12)); 
        //计算底数为 10 的对数。
        System.out.println("Math.log10(9):" + Math.log10(9)); 
        // 回参数与 1 之和的自然对数。 
        System.out.println("Math.log1p(9):" + Math.log1p(9)); 
        /*---------下面是符号相关的运算---------*/
        //计算绝对值。
        System.out.println("Math.abs(-4.5):" + Math.abs(-4.5));
        //符号赋值,返回带有第二个浮点数符号的第一个浮点参数。
        System.out.println("Math.copySign(1.2, -1.0):" + Math.copySign(1.2, -1.0));
        //符号函数;如果参数为 0,则返回 0;如果参数大于 0,则返回 1.0;如果参数小于 0,则返回 -1.0。
        System.out.println("Math.signum(2.3):" + Math.signum(2.3)); 
        /*---------下面是大小相关的运算运算---------*/
        //找出最大值
        System.out.println("Math.max(2.3 , 4.5):" + Math.max(2.3 , 4.5));
        //计算最小值 
        System.out.println("Math.min(1.2 , 3.4):" + Math.min(1.2 , 3.4));
        //返回第一个参数和第二个参数之间与第一个参数相邻的浮点数。
        System.out.println("Math.nextAfter(1.2, 1.0):" + Math.nextAfter(1.2, 1.0));
        //返回比目标数略大的浮点数
        System.out.println("Math.nextUp(1.2 ):" + Math.nextUp(1.2 ));
        //返回一个伪随机数,该值大于等于 0.0 且小于 1.0。
        System.out.println("Math.random():" + Math.random());
    }
}

 

 

 

 

二、

public class SquareInt {

    public static void main(String[] args) {
        int result;

        for (int x = 1; x <= 10; x++) {
            result = square(x);
            // Math库中也提供了求平方数的方法
            // result=(int)Math.pow(x,2);
            System.out.println("The square of " + x + " is " + result + "\n");
        }
    }

    // 自定义求平方数的静态方法
    public static int square(int y) {
        return y * y;
    }
}

 

 

三、

// RandomInt.java
// Shifted, scaled random integers
import javax.swing.JOptionPane;

public class RandomInt {
   public static void main( String args[] )
   {
      int value;
      String output = "";

      for ( int i = 1; i <= 20; i++ ) {
         value = 1 + (int) ( Math.random() * 6 );
         output += value + "  ";
         
         if ( i % 5 == 0 )
            output += "\n";
      }

      JOptionPane.showMessageDialog( null, output,
         "20 Random Numbers from 1 to 6",
         JOptionPane.INFORMATION_MESSAGE );

      System.exit( 0 );
   }
}

 

 

 

四、

import java.util.*;

public class TestRandom
{
    public static void main(String[] args) 
    {
        Random rand = new Random();
        System.out.println("rand.nextBoolean():" + rand.nextBoolean());
        byte[] buffer = new byte[16];
        rand.nextBytes(buffer);
        System.out.println(Arrays.toString(buffer));
        //生成0.0~1.0之间的伪随机double数
        System.out.println("rand.nextDouble():" + rand.nextDouble());
        //生成0.0~1.0之间的伪随机float数
        System.out.println("rand.nextFloat():" + rand.nextFloat());
        //生成平均值是 0.0,标准差是 1.0的伪高斯数
        System.out.println("rand.nextGaussian():" + rand.nextGaussian());
        //生成一个处于long整数取值范围的伪随机整数
        System.out.println("rand.nextInt():" + rand.nextInt());
        //生成0~26之间的伪随机整数
        System.out.println("rand.nextInt(26):" + rand.nextInt(26));
        //生成一个处于long整数取值范围的伪随机整数
        System.out.println("rand.nextLong():" +  rand.nextLong());
    }
}

 

 

五、

import java.util.Random;

public class TestSeed
{
    public static void main(String[] args)
    {
        Random r1 = new Random(50);
        System.out.println("第一个种子为50的Random对象");
        System.out.println("r1.nextBoolean():\t" + r1.nextBoolean());
        System.out.println("r1.nextInt():\t\t" + r1.nextInt());
        System.out.println("r1.nextDouble():\t" + r1.nextDouble());
        System.out.println("r1.nextGaussian():\t" + r1.nextGaussian());
        System.out.println("---------------------------");
        
        Random r2 = new Random(50);
        System.out.println("第二个种子为50的Random对象");
        System.out.println("r2.nextBoolean():\t" + r2.nextBoolean());
        System.out.println("r2.nextInt():\t\t" + r2.nextInt());
        System.out.println("r2.nextDouble():\t" + r2.nextDouble());
        System.out.println("r2.nextGaussian():\t" + r2.nextGaussian());
        System.out.println("---------------------------");
        
        Random r3 = new Random(100);
        System.out.println("种子为100的Random对象");
        System.out.println("r3.nextBoolean():\t" + r3.nextBoolean());
        System.out.println("r3.nextInt():\t\t" + r3.nextInt());
        System.out.println("r3.nextDouble():\t" + r3.nextDouble());
        System.out.println("r3.nextGaussian():\t" + r3.nextGaussian());
        
       
        Random r4 = new Random(System.currentTimeMillis());
        System.out.println("以当前时间为种子的Random对象");
        System.out.println("r3.nextBoolean():\t" + r4.nextBoolean());
        System.out.println("r3.nextInt():\t\t" + r4.nextInt());
        System.out.println("r3.nextDouble():\t" + r4.nextDouble());
        System.out.println("r3.nextGaussian():\t" + r4.nextGaussian()); 
    }
}

 

 

六、

这个示例展示了利用随机数来模拟骰子滚动的统计结果

// RollDie.java
// Roll a six-sided die 6000 times
import javax.swing.*;

public class RollDie {
   public static void main( String args[] )
   {
      int frequency1 = 0, frequency2 = 0,
          frequency3 = 0, frequency4 = 0,
          frequency5 = 0, frequency6 = 0, face;
   
      // summarize results
      for ( int roll = 1; roll <= 6000; roll++ ) {
         face = 1 + (int) ( Math.random() * 6 );
   
         switch ( face ) {
            case 1:
               ++frequency1;
               break;
            case 2:
               ++frequency2;
               break;
            case 3:
               ++frequency3;
               break;
            case 4:
               ++frequency4;
               break;
            case 5:
               ++frequency5;
               break;
            case 6:
               ++frequency6;
               break;
         }
      }

      JTextArea outputArea = new JTextArea( 7, 10 );

      outputArea.setText(
         "Face\tFrequency" +
         "\n1\t" + frequency1 +
         "\n2\t" + frequency2 +
         "\n3\t" + frequency3 +
         "\n4\t" + frequency4 +
         "\n5\t" + frequency5 +
         "\n6\t" + frequency6 );

      JOptionPane.showMessageDialog( null, outputArea,
         "Rolling a Die 6000 Times",
         JOptionPane.INFORMATION_MESSAGE );
      System.exit( 0 );
   }
}

 

posted @ 2021-09-30 11:47  zrswheart  阅读(85)  评论(0编辑  收藏  举报