【第三次JAVA课,java语法基础】课件总结

动手动脑1

  首先是个算法,常见的随机数产生器。

  

   从网络上我了解到这个算法的名称叫 线性同余,用这个算式可以得出在统计学上均匀的伪随机数,也是相当经典而运用广泛的随机数产生器了。

  在这个式子里,各个系数的范围:

      模m, m > 0

      系数a, 0 < a < m

      增量c, 0 <= c < m

      原始值(种子) 0 <= X(0) < m

根据这个式子,我设计了一个产生随机数的算法,其中,m=231-1,c=0,a=75,X0=系统时间(毫秒级)。

public class MyRand
{
    private long seed;
    private long random_number;

    public MyRand()
    {
        seed = System.currentTimeMillis();
        rand(seed);
    }

    private void rand(long seed)
    {
        random_number = (16807 * seed) % Integer.MAX_VALUE;
    }

    public long Random()
    {
        rand(random_number);
        return random_number;
    }

    public static void main(String[] args)
    {
        MyRand a = new MyRand();
        for (int i = 0; i < 1000; i++)
        {
            System.out.println("[" + (i + 1) + "]" + a.Random());
        }

    }

}

  个人体感是随机的,课件上介绍是232-2次后才会重复。

 

动手动脑2

  

public class MethodOverload {

    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;
    }
}

  

  这段代码特殊之处在于在Main函数里调用了两个同名函数,这两函数通过重载的方式保证不会有重名的冲突。

  方法重载是指“两个或多个方法名相同的函数可以被编辑器识别调用”,编译器会识别函数的签名来使“名字”相同的函数有了不同的“昵称”,只要参数类型、参数个数、参数顺序有一个不同那就会使编译器能够识别并重载,但方法返回值不是方法重载的判断条件!

 

递归

  利用递归处理回文判断。

import java.util.Scanner;

public class Palindrome
{
    private String string;

    public Palindrome(String a)
    {
        string = a;
    }

    public boolean isPalindrome()
    {
        if (string.length() <= 1)
            return true;
        else
        {
            if (string.substring(string.length() - 1).equals(string.substring(0, 1)))
            {
                string = string.substring(1, string.length() - 1);
                isPalindrome();
            } else
                return false;
        }
        return true;
    }

    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        String a = in.nextLine();
        Palindrome b = new Palindrome(a);
        System.out.println(b.isPalindrome());
        ;
    }
}

 

转载于:https://www.cnblogs.com/limitCM/p/9783474.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值