gpt4 book ai didi

java错误计算器

转载 作者:搜寻专家 更新时间:2023-11-01 07:38:14 26 4
gpt4 key购买 nike

我想生成一个范围内的随机数,并且生成的数字不应该在某个范围内发生冲突。
我使用了以下代码,但出现了 Stackoverflow 错误。有更好的解决方案吗?

static int [] xPositions=new int[10];
int WIDTH=700
public static void main(String args[])throws IOException
{

if(generateRandomXPositions(10)){
for(int i=0;i<10;i++){
System.out.println(" Random Numbers "+i+" :"+xPositions[i]);
}
}


}

private static boolean generateRandomXPositions(int n) {

for(int i=0;i<10;i++){
int temp=((int)0 + (int)(Math.random() * ((WIDTH - 0) + 1)));
for(int j=0;j<xPositions.length;j++){
if(xPositions[j]>temp-50 && xPositions[j]<temp+50){ // IF GENERATED NUMBER IS IN THIS RANGE IT SHOULD REGENERATE THE NUMBERS
generateRandomXPositions(10);
}
}
xPositions[i]=temp;
}
return true;
}

我知道问题出在这里

if(xPositions[j]>temp-50 && xPositions[j]<temp+50).   

下面一个工作正常

`if(xPositions[j]==temp)`.  

但我需要随机数应该遵循该范围! .

很多人想知道递归循环的退出条件。但是我相信如果随机数不在那个范围内,那么就没有进入递归循环的意义。

更新 1:

而且我相信编译器已经厌倦了找到这个范围之间的数字!现在我发现不可能将 10 张宽度为 100px 的图像放入 700px 宽度的容器中而不发生碰撞 X 位置!

请看下图。让我们想象一下,我想随机放置这些盒子而不发生碰撞......我该怎么做?

enter image description here

最佳答案

由于我认为这是作业,而您的问题很模糊,请尝试自己填写这些方法并将它们智能组合。

public int generateRandom();
public boolean isAccepted(int number);
public void generate();

对于 generate(),使用如下循环:

int temp = generateRandom();
while (!isAccepted(temp)) temp = generateRandom();

关于java错误计算器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7633271/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com