- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我了解 certainty参数表示:
certainty - a measure of the uncertainty that the caller is willing to tolerate: if the call returns true the probability that this BigInteger is prime exceeds (1 - 1/2certainty)
从我的实验来看,它似乎超过了很多!下面的代码在 2 到 100 万之间找到“可能的素数”,并检查一组确定的素数,看看它是否是误报。
我使用的确定性参数为 2。因此,我预计只有 75% 的“可能素数”是实际素数。 (1 - 1/22 = 0.75 = 75%。)
实际上,它在 99.9% 的时间里都是正确的。
我对“确定性”含义的理解正确吗?我怀疑如果我通过实验看到的确定性远远超出了我的预期,那可能不会。
import java.math.BigInteger;
import java.util.BitSet;
import static java.lang.Math.sqrt;
public class PrimesCalculator {
public final int max;
private final BitSet sieve; // Set of all non-primes from 2 to max.
public PrimesCalculator(int max) {
this.max = max;
sieve = new BitSet(max+1);
for (int n = 2, sqrtMax = (int) sqrt(max); n < sqrtMax; n++)
for (int i = n * 2; i < max; i += n)
sieve.set(i);
}
public boolean isPrime(int n) {
return !sieve.get(n);
}
public static void main(String[] args) {
PrimesCalculator calc = new PrimesCalculator(1_000_000);
int numPrimes = 0;
int numProbablePrimes = 0;
for (int i = 2; i < calc.max; i++)
if (BigInteger.valueOf(i).isProbablePrime(2)) {
numProbablePrimes++;
if (calc.isPrime(i))
numPrimes++;
}
System.out.printf("%s/%s (%s%%)%n", numPrimes, numProbablePrimes, numPrimes / (numProbablePrimes / 100.0));
}
}
最佳答案
这些陈述经常引起混淆。我将尝试在这里更好地解释它。
Java 的 BigInteger.isProbablePrime()
根本不包含对小整数的优化,除了 0、1 和 2 被视为特殊情况,并且除了 2 之外的所有偶数都立即声明为复合数。
使用 Miller-Rabin (MR) 素性检验检查所有其他奇数的素性。此外,如果整数为 100 位或更大,则还使用称为 Lucas-Lehmer 测试的方法对其进行检查。
MR 是一个复杂的素性测试,其解释和分析超出了 SO 答案的范围。关键是,就 MR 而言,并非所有复合 Material 都是平等的。非常非常小的一部分要发现它们的复合性要困难得多。举几个例子:在小的奇数复合 Material 中,91、703 和 1891 是困难的。 MR 通过尝试多次随机尝试来发现整数的复合性来克服这个问题。 Rabin 的分析表明,对于表现最差的复合 Material ,单次随机尝试仍有至少 75% (3/4) 的概率揭示其复合性。
certainty
参数几乎等同于指定 MR 算法需要执行的随机尝试次数。在现实中,certainty
之间的关系论点和随机尝试的次数比较复杂,我自己也没有完全理解。
作为查看不同复合 Material 性能的实验,请将程序更改为只是重复尝试确认复合 Material ,例如 1891。您会看到成功率接近 75%。
相对较小的 MR 顽固复合 Material 列表是 here .
关于java - BigInteger.isProbablePrime 似乎比它说的要确定得多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71564562/
谁能帮我解决这个问题?我有一个 Tomcat 和简单的 JSF 应用程序:https://github.com/gooamoko/jsfbilling/ .当我在 Tomcat 上运行应用程序时,它运
我有两个这样的域类,第一个是 Manager : package com.mnm class Manager { String name; static hasMany = [ pro
当我运行以下代码时,打印输出似乎不正确。 void thread_Calc(int *pos) { printf("recieved %d\n", *pos); sig = -1; man
这个问题在这里已经有了答案: How to access a local variable from a different function using pointers? (10 个答案) 关闭
我编写了一个程序,其中列表构建器方法返回 IEnumerable of string,其中包括大量字符串(100 万个项目),我将其存储在 List of string 中,然后它将所有项目附加到 中
我正在尝试编写一个 IRC 类型的聊天客户端,它具有可以连接到服务器的客户端。我试图让它在本地 atm 上工作(使用 FIFOS 而不是套接字)。 我遇到了以下我似乎无法解决的问题: 接受新的客户端连
我的一个 cronjobs 每天发送一封电子邮件 35 6 * * * cd $EZPUBLISHROOT && $PHP runcronjobs.php -q 2>&1 我停止使用 cron sud
我使用 WPF 打印路径来处理在我们的应用程序中创建的大型图表。整个图表由视觉效果组成。 所谓的“DesignerPaginator”对图表进行分页(非常简单)。 从这一点来说,我做了以下三件事: -
我尝试在更新之前跟踪系统应用程序并使用: public static boolean isSystemApplication(Context ctx, IContent content) {
我在这里附上了一个查询分析结果,https://explain.depesz.com/s/x9BN 这是查询 EXPLAIN ANALYZE SELECT branche
我正在做一个 CXF(spring) 项目 (HUB)。部署后,我可以看到肥皂和休息服务列表,我通过两个地址打开它。一种是使用本地主机,第二种是使用我电脑的 ip。所以我得到了这些输出。 使用本地主机
这是一个 AnyHashable 不支持枚举转换的简单案例。 enum testEnum: String { case Test } let myObject: AnyHashable = t
我的主要目标是比较存储在数据库和 XLSX 文件中的数据。 为此,我按以下方式创建了两个列表: private class ProductList { public string produc
我从 CMake 3.6 更新到任何最新版本 (3.12.0-rc2),现在我的一个程序无法编译。 奇怪的是,错误消息显示了标准库本身中的 undefined symbol 。这是错误消息: Unde
我希望将我的自定义对话框动画化为从特定点出现,但我无法为对话框设置动画。 该对话框是一个基本的 RelativeLayout,设置为 extends Dialog 类中的布局。 正如这里的一些答案所建
我已经在这个论坛上调查过很多类似的问题,但似乎没有一个能解决我的问题。 我会在底部列出我在这个论坛上看到的一些问题页面,但让我先谈谈我对这个问题的看法。 我正在使用 codeigniter v 2.x
我正在尝试在 RHEL 7 上启动一个 docker-compose 项目作为 systemd 服务。这是我的 systemd 脚本 (/etc/systemd/system/wp.service):
这个问题已经有答案了: "Notice: Undefined variable", "Notice: Undefined index", "Warning: Undefined array key",
我正在尝试在 RHEL 7 上启动一个 docker-compose 项目作为 systemd 服务。这是我的 systemd 脚本 (/etc/systemd/system/wp.service):
此问题出现在my last question here之后。我想将每个按钮聚焦和失去焦点背景设置为主菜单(ContentPane 即 JPanel)下方的背景颜色,因此按钮看起来像选项卡。它在不同的环
我是一名优秀的程序员,十分优秀!