java的Math.pow不支持3个参数吗?

依依雨柔
  • 233
 public Boolean rabin_miller(double num) {
        int s = num.subtract(BigInteger.ONE);
        int t = 0;
        BigInteger[] bis = s.divideAndRemainder(two);
        while(bis[1].compareTo(BigInteger.ZERO)== 0){
            s = (double) (s.divide(two));
            t += 1;
        }
        for (int i = 0; i < 5; i++) {
            int max = num.subtract(BigInteger.ONE);
            int min = 2;
            Random random = new Random();
            double a = (double) random.nextInt(max)%(max-min+1) + min;
            int v = (int) Math.pow(a, s, num);
            if(v != 1){
                i = 0;
                while(v != (num.subtract(one))) {
                    if(i == t - 1)
                        return false;
                    else{
                        i = i + 1;
                        v = (v ** 2) % num;
                    }
                }
            }
            return true;
        }
    }

clipboard.png

回复
阅读 1.6k
3 个回答
  1. 不支持!
  2. 你要让第三个参数做什么?
  3. 这种api查一下文档就知道了

自己再封装一下就是了..

java api 定义这么久大家都这么用肯定没有问题
x的y次方,那么为什么会有三个参数
x的y次方的z次方
Math.pow(Math.pow(x,y),z)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏