-3

我正在用 Java 为另一个游戏(Minecraft)中的一种小游戏编写代码,我偶然发现了一个问题。

我有两个整数,整数点 1 和整数点 2。它们是 x 坐标,从 ex:-100000 到 100000。但也有 -10000 到 -5000,以及 10000 到 20000。所以从负到正,也从负到负和积极到积极。

这就是问题所在。我需要找到一个解决方案,如何获得从 ex -100 到 -50 的随机数。但相同的代码必须与 -100 到 50 和 10 到 50 一起使用。

如果你们能帮助我,那就太好了!

问候,

杰西。

PS:如果您需要代码片段或其他内容,请说出来。

4

2 回答 2

2

Silviu Burcea 的评论包含一个可以回答您问题的谷歌搜索。数字就是数字。他们有什么标志并不重要。所以去谷歌搜索的第一个结果给出了答案:

public static void main(String[] args){
    Random rand = new Random();

    for(int j = 0; j < 100; j++){
        // just modified the line from the other thread 
        // which was "int randomNum = rand.nextInt((max - min) + 1) + min;"
        int i = rand.nextInt(-50 - -100 + 1) + -100;
        System.out.println("Next value = " + i);
    }

}

这会打印出 -100 到 -50 之间的伪随机数。所以,是的,你的问题是重复的。

于 2013-10-29T14:01:38.637 回答
-1
int mix = Math.min(point1, point2) + (int)(Math.abs(point1 - point2) * Math.random()));

编辑:

int mix = Math.min(point1, point2) + Math.round(Math.abs(point1 - point2) * Math.random()));

编辑2:

int mix = Math.min(p1, p2) + (int)Math.round(-0.5f+(1+Math.abs(p1 - p2))*Math.random());

这种表达式评估的分布似乎可能更好。但这实际上并不是一个优化的解决方案。

于 2013-10-29T13:33:17.810 回答