首页 > 其他分享 >9.22

9.22

时间:2023-09-22 16:13:58浏览次数:40  
标签:9.22 System static println public Math out

之前忘了完成动手动脑的作业,正好今天没课先写动手动脑再去想怎么完成javaweb的界面

一、Math类的测试

反函数在前面加a,双曲在后面加h

熟练掌握数学类函数能够让之后代码中的计算变得更加方便

public class work {
    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());
    }
}

int类的求平方函数

public class work {
    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;
    }
}

 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

二、随机数

import javax.swing.JOptionPane;
//用于生成一个显示框
public class work {
    public static void main( String args[] )
    {
        int value;
        //output为之后输出的格式
        String output = "";

        for ( int i = 1; i <= 20; i++ ) {
            value = 1 + (int) ( Math.random() * 6 );
            output += value + "  ";

            if ( i % 5 == 0 )
                output += "\n";
        }
        //生成一个显示输出消息的框输出output
        JOptionPane.showMessageDialog( null, output,
                "20 Random Numbers from 1 to 6",
                JOptionPane.INFORMATION_MESSAGE );

        System.exit( 0 );
    }
}

 这个和之前的写的生成二年级学生题目用的随机数生成方式不同,这个用的是math,之前的那个是引入的random类创建random对象来实现的

import java.util.Arrays;
import java.util.Random;
public class work {
    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);
        //将数组转换为String类并进行输出
        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());
    }
}

 这个是利用的random类生成的随机数

import java.util.Random;

public class work {
    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());
    }
}

 种子会对生成的随机数产生影响,种子相同产生的随机数也相同。

当进行随机时可以将当前的时间作为随机数的种子,这样可以保证种子在不断变化以确保随机数的随机性

import javax.swing.*;
import java.util.Random;

public class work {
    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++ ) {
            //生成1-6的随机数
            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 );
    }
}

 用随机数随机骰子投出各个面的次数。

全手写代码实现生成随机数

public class work {
   static final int N=1000;//生成随机数的个数
   static final int Left=0;//生成随机数的左边界
   static final int Right=1000;//生成随机数的右边界
    //这些数随便写就行,后面的L表示是long类型
   static long x0=1L;
    static long a =1234567890L;
    static long c=12345L;
    static long m=123456L;
   //生成随机数
   public static long rand(long r){
       r=(r*a+c)%m;//xn+1=(xn*a+c)mod m;
       return r;
   }
   //用来确保生成的随机数在规定的范围内
   public static long little(int L,int R,long r){
       r=L+r%(R-L+1);
       return r;
   }
   public static void recursion(int count,long rand){
       if(count>N)
           return;
       //确保每次生成的数不同
       rand=rand(rand);
       long r=little(Left,Right,rand);
       System.out.print(count+"、"+r+" ");
       if(count%10==0){
           System.out.println();
       }
       recursion(++count,rand);

   }
   public static void main(String[] args){
       recursion(1,x0);
   }
}

 能生成1000个0到1000的随机数太大了就只截取了一部分。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

三、可变参数

可变参数只能出现在方法参数的最后

在方法体中可以用数组的方法访问可变参数

public class work {
    public static double max(double...values)
    {
        double largest=Double.MIN_VALUE/*4.9e-324*/;
        //增强for循环相当于自动遍历了
        for (double v:values)
            if(v>largest) largest=v;
        return largest;
    }

    public static void main(String args[]) {

        System.out.println("Max:"+max(1,11,300,2,3));

    }
}

 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

四、重载

电脑可以对方法进行一定程度的识别,传参不同的两个同名函数,电脑可以根据传参的个数和类型自动去调用正确的函数

参数类型的顺序不同也可以比如先INT后FLOAT和先FLOAT后INT也是可以识别的

public class work {
    public static void main(String[] args) {
        System.out.println("The square of integer 7 is " + square(7));
        System.out.println("\nThe square of double 7.5 is " + square(7.5));
    }

    public static int square(int x) {
        return x * x;
    }

    public static double square(double y) {
        return y * y;
    }
}

 ------------------------------------------------------------------------------------------------------------------------------------------------------

五、递归

自己调用自己,注意不要形成死循环,要设置停止的条件

import java.math.BigInteger;
import java.util.Scanner;

public class work {
    public static void main(String[] args) {
        System.out.print("请输入N:");
        Scanner scanner=new Scanner(System.in);
        int number=scanner.nextInt();
        System.out.println(number+"!="+calculateN2(number));

    }
    //递归实现求n的阶乘
    public static long calculateN(int n) {
        if(n==1 || n==0){
            return 1;
        }

        return n*calculateN(n-1);
    }
//BigInteger类也是整数,但是它的范围远大于int和long,可用于更大的整形的定义
    public static BigInteger calculateN2(int n) {
        if(n==1 || n==0){
            return BigInteger.valueOf(1);
        }
        //multiply用于计算两个BigInteger类的乘法
        return BigInteger.valueOf(n).multiply(calculateN2((n-1)));
    }
}

 两个浮点数之间的比较

 如果要比较两个浮点数是否相等首先要比较他们差的绝对值知否在许可范围之内

 

标签:9.22,System,static,println,public,Math,out
From: https://www.cnblogs.com/xuxingkai/p/17722443.html

相关文章

  • 9.22动手动脑
    一、动手动脑1importjava.util.Random;publicclassRandomNumberGenerator{publicstaticvoidmain(String[]args){generateRandomNumbers(1000);}publicstaticvoidgenerateRandomNumbers(intcount){intmodulus=231-1;......
  • 2023.9.22 AT practise
    ARC083F显然每个小球必须被\((0,y)\)或\((x,0)\)中的一个收掉,那么把\(i\)的球看成一条边,链接两个机器人。因为\(2n\)个小球对应\(2n\)条边,故建图出来是一个基环树森林。考虑把每条边定向,对应的就是那个球被那个机器人收了。那么每个基环树只有两种情况(环的方向)。现......
  • 9.22动手动脑
    观察以下代码,你发现了有什么特殊之处吗?packagedongshou1;publicclassMehodOverload{publicstaticvoidmain(Stringargs[]){System.out.println("Thesquareofinteger7is"+square(7));System.out.println("Thesquareofinteger7.5is&quo......
  • 9.22动手动脑
    观察以下代码,你发现了有什么特殊之处吗?123456789101112131415161718192021222324252627282930313233343536373839404142434445package dongshou1;    public class MehodOverload{ public static ......
  • 9.22 周五
    //MethodOverload.java//UsingoverloadedmethodspublicclassMethodOverload{ publicstaticvoidmain(String[]args){ System.out.println("Thesquareofinteger7is"+square(7)); System.out.println("\nThesquareofdouble7.5is&q......
  • 9.22模板
    最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。 示例1:输入:strs=["flower","flow","flight"]输出:"fl"示例2:输入:strs=["dog","racecar","car"]输出:""解释:输入不存在公共前缀。#inc......
  • 【坚持每日一题9.22】数字流的秩
    假设你正在读取一串整数。每隔一段时间,你希望能找出数字x的秩(小于或等于x的值的个数)。请实现数据结构和算法来支持这些操作,也就是说:实现track(intx) 方法,每读入一......
  • 9.22面试题
    请你说说内存管理?linux操作系统采用段页式内存管理方式页式内存管理方式可以有效的提高内存利用率段式内存管理能反映程序的逻辑结构并有利于段的共享段页式存储管......
  • 13 刘欣晨 2022.9.22
    实验一 项目名称:     输出每日一贴                       importdatetimemot=["今天星期一:\n坚持下去不是因为我很坚强,而是因为我别......
  • 9.22
    wm_channer:频道表wm_news:文章表1.增删改插入一条:插入一条频道insertintowm_channelVALUES(9,"Scala",9,0,1,9,"2022-9-2212:00:00");插入多条:插入多条......