【发布时间】:2015-12-20 11:55:46
【问题描述】:
我必须创建一个扩展 RandomGenerator 的类,并在每次用户在主程序中输入一个区间时生成一个随机素数。
我已经创建了构造函数和isPrime 方法,但我不知道下一步该做什么。
这就是我得到的。我确信这其中有错误,但我就是看不到它们。
public class RandomGeneratorImproved extends RandomGenerator {
public RandomGeneratorImproved(int prime) {
int startp=0;
int tillp=prime-1;
}
public RandomGeneratorImproved(int lowp,int upperp) {
int startp=lowp;
int tillp=upperp;
}
public boolean isPrime(int startp,int tillp) {
int prime=rgen.nextInt(startp,tillp);
int n=0;
if (prime<=1) {
return false;
} else if (prime<=3) {
return true;
} else if (prime%2==0 || prime%3==0){
return false;
}
for (int i=5;i<(prime/i);i+=6) {
if (prime%i==0) {
return false;
}
}
return true;
}
private RandomGenerator rgen= RandomGenerator.getInstance();
}
注意事项:
如果用户只输入一个数字(比如说:x),那么间隔将为 (0,x)。换句话说,我们必须创建两个方法或两个构造函数。
例如:public int nextPrime(int n)或public int nextPrime(int low,int high)我不允许使用数组(或其他使问题变得更容易的现成方法)。
我搜索了所有涉及随机素数生成器的内容,但找不到与此类似的内容。
【问题讨论】:
-
发布MCVE。请务必将您的代码复制粘贴到新项目,并确保在将其发布到此处之前编译并运行。
-
我的代码无法运行,这就是我在这里发帖的原因。它还没有完成,我无法编译它,我只能发布完成的部分。我应该吗?
-
是的,不过只是与您的问题相关的部分。
-
好的,完成。感谢您的反馈!
-
不知道
acm.jar是什么,它不是 SE 库的一部分。此外,这些变量没有在那里声明,它们只是被赋值。正如我所说,将这个类复制粘贴到一个新项目中,看看它是否编译。然后我会指导你如何使用它。