费马素性测试的实现

2023-12-14

谁愿意帮我做作业?

我正在尝试实施费马素性测试在 Java 中使用 BigIntegers。我的实现如下,但不幸的是它不起作用。有任何想法吗?

public static boolean checkPrime(BigInteger n, int maxIterations)
{
    if (n.equals(BigInteger.ONE))
        return false;

    BigInteger a;
    Random rand = new Random();

    for (int i = 0; i < maxIterations; i++)
    {
        a = new BigInteger(n.bitLength() - 1, rand);
        a = a.modPow(n.subtract(BigInteger.ONE), n);

        if (!a.equals(BigInteger.ONE))
            return false;
    }

    return true;
}

我是 BigIntegers 的新手。

Thanks!


您对特定 BigInteger 构造函数的使用是合理的,但您应该使用拒绝法选择费马基 a.以下是对类中方法的轻微修改,该类也仅使用一个 Random 对象:

import java.math.BigInteger;
import java.util.Random;

public class FermatTestExample
{

    private final static Random rand = new Random();

    private static BigInteger getRandomFermatBase(BigInteger n)
    {
        // Rejection method: ask for a random integer but reject it if it isn't
        // in the acceptable set.

        while (true)
        {
            final BigInteger a = new BigInteger (n.bitLength(), rand);
            // must have 1 <= a < n
            if (BigInteger.ONE.compareTo(a) <= 0 && a.compareTo(n) < 0)
            {
                return a;
            }
        }
    }

    public static boolean checkPrime(BigInteger n, int maxIterations)
    {
        if (n.equals(BigInteger.ONE))
            return false;

        for (int i = 0; i < maxIterations; i++)
        {
            BigInteger a = getRandomFermatBase(n);
            a = a.modPow(n.subtract(BigInteger.ONE), n);

            if (!a.equals(BigInteger.ONE))
                return false;
        }

        return true;
    }

    public static void main(String[] args)
    {
        System.out.printf("checkprime(2) is %b%n", checkPrime(BigInteger.valueOf(2L), 20));
        System.out.printf("checkprime(5) is %b%n", checkPrime(BigInteger.valueOf(5L), 20));
        System.out.printf("checkprime(7) is %b%n", checkPrime(BigInteger.valueOf(7L), 20));
        System.out.printf("checkprime(9) is %b%n", checkPrime(BigInteger.valueOf(9L), 20));
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

费马素性测试的实现 的相关文章

  • Spring与AspectJ编译时编织导致:java.lang.VerifyError:非法使用非虚拟函数调用

    我正在尝试使用 Spring 的 AspectJ 编译时编织而不是
  • 春天。使用java配置解决循环依赖而不使用@Autowired

    我有循环依赖和java配置 虽然使用 xml 配置解决它非常简单 但如果没有 Autowired 我无法使用 java 配置解决它 豆子 public class A private B b public B getB return b p
  • H2 - 多个应用程序访问同一个 H2 数据库

    我正在使用嵌入式数据库H2在 2 个网络应用程序中说WebApp1 and WebApp2 我运行 WebApp1 并执行一些查询来访问 H2 数据库 同时我运行 WebApp2 但它抛出异常H2 当前已被另一个进程使用 我的需求是 我应该
  • 在 Windows 7 中,不从命令行强制终止 JVM

    我在 JVM 中运行了 Cobertura 仪器化 jar 当我在运行应用程序的 Windows 控制台中按 Ctrl C 时 JVM 结束并Cobertura 结果已成功刷新到 cobertura ser 文件 但我需要使用命令 工具 不
  • java.lang.unsatisfiedlinkerror 无法加载 amd 64 位 .dll ia 32 位

    当我尝试在 Eclipse 上运行我的项目时 出现以下错误 它在我开发它的计算机上运行良好 但当我将其导入我的笔记本电脑时 它不起作用 这个问题已经在本网站的其他地方提出过 这个问题的主要原因似乎是环境变量设置不正确 但我检查过 它们似乎是
  • NSArray 中不重复的所有可能组合

    假设我有一个包含 3 个数字的数组 NSArray array 1 2 3 我想进行所有组合而不重复 所以我需要的是这样的 1 2 3 1 2 2 3 1 3 1 2 3 我当前的代码是这样的 NSArray array 1 2 3 int
  • 使用 Java NIO 直接访问 Windows 磁盘

    我正在使用一个使用 Java NIO 的库来直接将文件映射到内存 但我在直接读取磁盘时遇到问题 I can直接使用读取磁盘FileInputStream与 UNC 合作 例如 File disk new File PhysicalDrive
  • Spring Batch 多线程

    我正在编写一个 Spring Batch 并希望在需要时对其进行扩展 我的 ApplicationContext 看起来像这样 Configuration EnableBatchProcessing EnableTransactionMan
  • 在 Java 和 C 中在运行时调用名为“string”的方法

    我们如何调用名称为的方法string在运行时 谁能告诉我如何在 Java 和 C 中做到这一点 在java中可以通过反射api来完成 看一下Class getMethod String methodName Class parameterT
  • Spring 可以理解 @Inject 替换 Weld 作为 JSR-299 实现吗?

    我从几个网页中注意到 Spring 3 0 显然支持来自 JSR 330 的 Inject 由于我们确实希望在 Web 应用程序和独立应用程序的库中使用 JSR 299 语法进行依赖项注入 并且有 Weld 的替代方案 因此如果 Sprin
  • 使用Optional作为类中的属性是一个好习惯吗? [复制]

    这个问题在这里已经有答案了 我读过一些关于目的的内容Optional 不幸的是我不记得在哪里 在Java 8中 我很惊讶作者没有提到使用Optional作为类中的属性 由于我在课堂上经常使用选项 我想知道这是否是一个好的做法 或者我可以更好
  • 使用java在mysql中插入带有\\的文件路径

    我正在使用java制作一个独立的应用程序 并且我需要插入用户从文件选择器中选择的图像的路径 我正在获取文件的路径 但是当我将其存储在数据库 mysql 中时 它不会存储 所以当我检索该路径时 该文件不会显示 如何存储文件的路径 这样就可以使
  • UiBinder 中的 gwt 按钮

    我需要创建一个按钮 所以它是一个带有图像的按钮 gwt with UiBinder 但我不确定如何进行 这是我的ui xml code
  • Selenium Webdriver 中显式等待 findElements

    登录后 页面重定向到一个页面 我想等待页面加载 我在其中按 tagName 查找元素 By inputArea By tagName input List
  • 内容安全策略:页面设置阻止自行加载资源?

    我有基于 Java 的 Web 应用程序运行在Tomcat http en wikipedia org wiki Apache Tomcat6 我的应用程序在本地主机和端口 9001 上运行 为了使我的应用程序更加安全并降低风险XSS ht
  • 如何在Android Studio中关联.mp3文件

    我想根据列表视图项单击播放 mp3 文件 但是根据我的代码 我运行我的应用程序 出现此窗口 因此由于缺少音频选项 我真的不知道需要选择其中哪一个为了关联我的 mp3 文件 mainList setOnItemClickListener ne
  • 用 Java 捕获扬声器输出

    使用Java可以捕获扬声器输出吗 此输出不是由我的程序生成的 而是由其他正在运行的应用程序生成的 这可以用 Java 完成还是我需要求助于 C C 我有一个基于 Java 的应用程序 使用过的爪哇声音 https stackoverflow
  • 为什么 Libgdx 的 Table 不接受缩放操作?

    我在 libgdx 库中使用 scene2d 在游戏中创建一些 UI 我使用了一个表格 我想在用户触摸时采取一些缩放操作以使按钮触摸有意义 当我使用任何其他 Actor 类型 例如 Group 并为其提供缩放操作时 它可以工作 但不能工作表
  • 将 Class 对象转换为字节

    如果我有一个Class http java sun com j2se 1 5 0 docs api java lang Class html在运行时实例 我可以获得它的 byte 表示形式吗 我感兴趣的字节将在类文件格式 http java
  • Spring @Configuration如何缓存对bean的引用

    使用基于 Java 的配置时 Spring 如何防止再次调用 bar 我想知道编译时注释处理或通过代理方法 Configuration public class AppConfig Bean public Foo foo return ne

随机推荐

  • 返回承诺时自定义异步验证不起作用

    我正在调用 Web api 来检查 urlalias 是否可用 对于此任务 我在异步验证器中使用 httpservice 问题是 当调用验证器时 将执行所有正确的代码路径 所有console log 运行并按预期运行 验证的承诺是否返回 解
  • 将 calendar_date_select 与 Rails 3 结合使用

    我一直在尝试在注册过程中创建用户出生日期选择字段 代码如下所示 div h3 Register h3 div style width 374px margin 0 auto div div div div div div
  • 在处理传入请求之前,如何在“TISAPIApplication”中建立 ADO 数据库连接?

    TADOConnectionDelphi ISAPI 应用程序的应用程序初始化部分无法连接 TISAPIApplication 应用程序是使用 Delphi XE SPI 构建的 运行 Win 7 64 IIS 7 5 和 WinServe
  • Excel VBA:具有不同文件扩展名的 SaveCopyAs

    我有一个扩展名为 xlsb 的 Excel 文件 并使用其宏根据内容生成其他几个 Excel 工作表 宏的工作方式是更改原始 Excel 文件 然后使用SaveCopyAs方法保存生成的 Excel 工作表 生成的 Excel 工作表应以
  • 发布时如何设置ASPNETCORE_ENVIRONMENT?

    我有几个 WebDeploy 发布配置文件 可将我的 NET Core Web 项目部署到各个位置 开发 QA IIS 上的阶段 为了让应用程序知道它在哪里运行 我需要设置 ASPNETCORE ENVIRONMENT 环境变量 是否可以在
  • 来自特定麦克风的 Web Audio Api 输入

    我正在使用 Web Audio Api navigator getUserMedia audio true function function 进行音频录制 如果用户有多个麦克风设备 我可以选择所需的录音设备吗 我遇到过一个有问题的情况 一
  • 在 sed 中使用美元符号进行变量替换和字符

    我尝试使用 sed 更改名为 fusion gnu 的文件中的一行 我有一个名为lafila 这是一个文件名 目前 我可以这样做 lafila nGas060 dat sed i 6s plot lafila using 1 2 with
  • 即时应用程序模块在另一个非基本模块中搜索资源

    我正在开发一个即时应用程序 它有base模块和 2 个功能模块 feature1 and feature2 当我尝试启动时遇到奇怪的崩溃feature2活动 java lang RuntimeException Unable to star
  • x86除法异常-返回地址

    当尝试在 x86 程序集中为引导加载程序编写一些例程时 我遇到了一个错误 当发生除法错误时 程序将陷入无限循环 通过调查 我发现调用 int 0 会正常通过异常处理程序 然后继续执行程序的其余部分 我自己为 x86 编写了异常处理程序 发生
  • 如何访问 GroupPrincipal 对象上的注释字段

    我使用查询特定域中的所有安全组 PrincipalSearchResult
  • 在批处理文件的参数中转义“、<、>、>> 或 | 等字符

    尝试做 fake command bat ping n 4 w 1 127 0 0 1 gt NUL and fake command bat ping n 4 w 1 127 0 0 1 批处理文件可能如下所示 echo 它应该返回 pi
  • T-SQL BETWEEN 问题最大值优先

    为什么这两个表达式返回不同的结果 这实在是太愚蠢了 SELECT FROM Table WHERE ID BETWEEN 3 AND 1 SELECT FROM Table WHERE ID BETWEEN 1 AND 3 As the 文
  • OpenCV检测人脸特征点(耳朵-下巴-耳朵线)

    我正在寻找一个opencv函数 在python中 检测人脸上的左耳 下巴 右耳线 看起来像抛物线 有没有某种 haarcascade 来做这项工作 我已经知道正面或眼睛的轮廓 但我正在寻找更精确的东西 您正在寻找的称为面部标志检测 您可以尝
  • 使用 Nimbus Look And Feel 时无法在 JTextArea 背景上绘制图像

    我正在绘制图像JTextArea背景 它是使用其他外观和感觉 金属 Windows 等 绘制的 但是当我使用Nimbus外观和感觉它不绘制图像可能是什么问题以及如何解决该问题 这是我正在使用的代码 图片文本区域类 public class
  • 如何在opencv中应用三点三角形渐变?

    假设我们有一个 Delaunay 三角剖分这个 产生于fillConvexPoly on getVoronoiFacetList 里面有三角形 可以通过以下方式获得getTriangleList 我想画德劳内三角剖分 就像它是由三角形组成的
  • 全局变量与局部变量的性能

    我对 Python 还是个新手 并且一直在努力提高 Python 脚本的性能 因此我在使用和不使用全局变量的情况下对其进行了测试 我对它进行了计时 令我惊讶的是 使用声明的全局变量而不是将局部变量传递给函数 它运行得更快 这是怎么回事 我认
  • uWSGI+Flask+boto——线程安全

    假设我有一个 Flask 应用程序 由 uWSGI 使用多个进程提供服务 例如 uwsgi socket 127 0 0 1 3031 file flaskapp py callable app processes 4 我的 Flask 应
  • Retrofit 和 RxJava:如何组合两个请求并访问两个结果?

    我需要提出两个服务请求并将其结果合并 服务 gt id 1 name title id 1 name title 服务B id gt field value field1 value 目前 我已成功合并结果 但我需要通过id作为参数Serv
  • 无法读取环境变量

    我有一个简单的 Symfony 项目 使用 symfony dotenv 4 3 in the composer json并尝试读取环境变量的值 这是我的命令 var dump ENV MY NEW VAR 这是我的 env file MY
  • 费马素性测试的实现

    谁愿意帮我做作业 我正在尝试实施费马素性测试在 Java 中使用 BigIntegers 我的实现如下 但不幸的是它不起作用 有任何想法吗 public static boolean checkPrime BigInteger n int